Skip to main content

Delivery Guarantees

Delivery Guarantees

Depending on the messaging system you use, there will be different delivery guarantees. the event service uses Kafka as the messaging system, so the delivery guarantees will depend on the producer configuration and the broker configuration that you use. Depending on the number of partitions configured for the TRANSACTION topic, the events may be delivered out of order.

caution

Any transaction logic that depends on the order should use the transaction status and the updated_at fields to determine the order of the events.

Next subsections will describe the delivery guarantees from the client and the business server perspective.

Client Delivery Guarantees

For each client, the event service will attempt to deliver each event up to three times with an exponential backoff. If the event is not delivered after three attempts due to HTTP 4xx or 5xx errors, the event will be skipped. If the client is not reachable after three attempts, the event service will no longer attempt to deliver any events to that client.

Business Server Delivery Guarantees

The event service will attempt to deliver each event to the businesss server up to three times with an exponential backoff. If the event is not delivered after three attempts due to HTTP 4xx or 5xx errors, the event will be skipped. If the business server is not reachable after three attempts, the event service will no longer attempt to deliver any events to the business server.

note

The business server delivery guarantees are the same as the client delivery guarantees. In the future, the event service will skip the events that are not delivered to clients that are not reachable.