Core Open Source Software Developed by RTB4FREE

Last updated: April 18, 2017

Crosstalk

Crosstalk enables RTB4FREE bidders to operate as a cluster in production environments. The source code with program description can be found here: https://github.com/benmfaul/XRTB

To support higher transaction rates beyond the capacity of a single instance, bidders can be deployed as a farm of instances, typically front ended by a load balancer like HAProxy. The SSP traffic load is distributed among the farm. This configuration requires the RTB4FREE Crosstalk component which loads configruation information to each bidder instance, and coordinates their activity. It also requires the RTB Zerospike component which acts as a store for shared data among the bidders.

bidder/ct diagram here.

The RTB4FREE Campaign Manager component is usually deployed as a web user interface to allow multiple users to define campaigns, update bidder configurations and view campaign level metrics. Campaign configurations are stored in a MySQL database.

Upon startup of an RTB4FREE platform, Crosstalk will pull exchange and campaign information from the MySQL database and load each bidder. When a Campaign Manager user updates a campaign, it communicates with the Crosstalk API. Crosstalk will extract data from the MySQL database, then update each bidder in the farm.

Crosstalk's configuration file is at config.json. An example is shown below.


 {
    "rtbName": "crosstalk",
    "password": "iamspartacus",
    "region": "$REGION",
    "zeromq": {
        "status": "kafka://[$BROKERLIST]&topic=status",
        "commands": "tcp://$PUBSUB:6000&commands",
        "responses": "tcp://$PUBSUB:6001&responses",
        "xfrport": "6002"
    },
 	"elk": {
 		"XsimFile": "simdata/debug.sim",

		"host": "$GHOST",
		"agghost": "$AHOST",

    	"port": 9200
    },
	"mysql": {
		"login": "$JDBC"
	},
	"app": {
    	"port": "$CONTROL",
		"uuid": "crosstalk"
	}
}

Also note $PUBSUB, $BROKERLIST, $JDBC, $CONTROL, $GHOST and $AHOST. These are environment variables used to override the standard configuration file entries. You can use your own set of environment variables alongside with a set of "built-in" enviornment variables we defined. The list of predefined variables and their defaults can be found here

All the RTB4FREE configuration files are designed to work in concert with Docker compose files so that key parameters can be changed with environment variables. See the Deploy section for details.