Services
Four long-running services. Each owns its own data.
- IngestAccepts inbound batches, validates them against the current schema, and writes to the staging tables.
- SchedulerOwns recurring work. Everything periodic goes through here rather than through cron on individual boxes.
- NotifierFans out email and webhook delivery. Retries with backoff; drops to the dead-letter queue after six attempts.
- ArchiverMoves cold rows to object storage on a 90-day rule and keeps an index of what went where.