Delivery Semantics
Idempotency
EnterSignal does at-least-once delivery. You can deduplicate based on the tuple (fact_event_id, event_time), which is stable and globally unique.
EnterSignal internally ensures that each fact_event_id can only have exactly one event_time. This will simplify exactly-once processing implementation on the client-side.
Ordering
For cursor-based pull-based subscriptions, events are delivered strictly ordered by event_time. Out-of-order events will be discarded.
For webhook-based push subscriptions, events are strictly ordered, but you will need to configure your load balancer to be sticky on entity ID.
For offline-based subscriptions, events are strongly ordered.