Server sent events (SSE)
SSE is a streaming connection your application opens to Timefold. Timefold pushes status updates over the connection as solving progresses.
SSE is well suited to development and local environments because it requires no public endpoint on your side — your application opens the connection outbound. It also gives you real-time visibility into solving progress, not just the final result.
SSE is not recommended for production because it holds an open HTTP connection for the duration of the solve. At scale, this consumes connection resources on both sides. We recommend configuring Webhooks to retrieve the solutions to your submitted datasets from Timefold in production.
In local development environments, we recommend using server sent events.
Configuring SSE
To subscribe to events for a submitted dataset, use the dataset ID from the response to the POST operation and make a GET request to the following endpoint:
/v1/{model-entity-name}/<ID>/events
-
Replace
<ID>with the dataset ID. -
For field service routing and pick-up and delivery routing, replace
{model-entity-name}withroute-plans. -
For employee shift scheduling, replace
{model-entity-name}withschedules.
| Read dataset lifecycle to know which statuses exist and which ones are final. |
Update frequency
The events endpoint sends data for every solution event from the solver. A throttler limits this to at most one event per second.
This means events are not limited to score or status changes. Any time the solver finds a new solution, an event is sent — subject to the one-per-second throttle.