
NodeJS event system
Upwork
Remoto
•9 hours ago
•No application
About
Overview We need a simple but durable distributed event system built with NodeJS (v24.x), ExpressJS, Postgres (via PrismaORM), and optionally RabbitMQ (or a better broker alternative if needed). This will run on Railway. The goal: - Services can publish events via an API (secured by API key). - Multiple subscribers can listen to events, across different servers. - Events must be durably stored (Postgres as source of truth) and replayable for at least 30 days. - Subscribers should receive events in global order, exactly-once (per subscriber), even after downtime. This is internal only (no public endpoints), so focus is on durability and correctness, not speed. Requirements - Event API secured by opaque API keys (I have my own OAuth2 server, but framework-only needed). - Publish/subscribe model where subscribers can dynamically register/unregister. - Persistence & replay: - All events stored in Postgres. - Configurable TTL (default 7 days). - Replay all missed events since last ack per subscriber. - Reliability features: - Retry policy with exponential backoff. - Dead-letter queue (DLQ) per subscriber. - Manual ack & offsets per subscriber for exactly-once semantics. - Audit logging: Table to track all published events. - Docs: - OpenAPI/Swagger spec for APIs. - Console logs for observability (future-ready for external logging service).