Real Decision

Reliable Delivery Pipeline

Problem

Sending messages synchronously limits throughput and complicates retry logic.

Decision

Split notification processing into multiple stages:

Event received.

Notification persisted.

Dispatch worker sends messages.

Delivery status processed separately.

This architecture improves throughput while enabling deterministic retries and monitoring.