FirstBatch SDK
Comment on page


Algorithms are directed graphs. In these graphs, each node represents a 'Batch' operation, which can be of four types: Personalized, Sampled, Biased, or Random. Each edge in the graph signifies a 'UserAction', which has two sub-categories: Batch and Signal.
In this system, users have two possible actions: sending signals and requesting new data batches. Each action updates the user's current state in the algorithm, and FirstBatch individually tracks these states.

What is a State?

A State identifies the current node in a session. It changes whenever a user performs an action, triggering two things:
  • Execution of the node's operation type
  • State update through the directed graph based on the user's action

Simple Algorithm

The "simple" algorithm below features three states: Discovery, Recommendation, and Expansion. Each node has its own operation type and associated parameters. Additionally, each node has at least one outgoing signal and batch edge that connects it to other nodes.
A simple, built-in algorithm
Here blue edges represent "batch" action, where purple operations represent "signal" action. An example run for a session starting at "Recommendation" state:
  • User action -> batch
  • Operation: personalized batch, params: {mu: 0, r:0, alpha:0}
  • New state: Expansion
  • User action -> Signal
  • New State: Recommendation