notifd
Go service that accepts SMS / Email / Push notification requests and queues them asynchronously (Asynq + Redis) with weighted priority queues. Delivery runs through a simulated external provider (with failure injection) under a 100 msg/s per-channel distributed rate limit, backed by a Lua token bucket. Idempotency keys de-duplicate requests, failed deliveries retry with exponential backoff before landing in a dead-letter queue, and a circuit breaker protects the provider under sustained failures. Notifications can be scheduled for later delivery, and clients get real-time status over WebSocket. Data is stored in PostgreSQL with versioned migrations, the API is documented with OpenAPI 3 and Swagger UI, and the service ships Prometheus metrics, structured logs, and health checks. Runs locally with a single Docker Compose command, with CI running race-enabled tests. Open source under the MIT license.