Ingest events, fan-out (by user segments), queues for retries, worker pool to call APNs/FCM, templates, rate limiting, and monitoring. Store delivery status and handle idempotency using message IDs.
Ingest events, fan-out (by user segments), queues for retries, worker pool to call APNs/FCM, templates, rate limiting, and monitoring. Store delivery status and handle idempotency using message IDs.