RelayForge is a production-minded webhook delivery control plane. It gives operators one durable timeline for payload identity, HMAC signatures, receiver outcomes, retries, dead-letter handling, and manual replay.
- Idempotent event ingestion backed by a unique producer key
- HMAC-SHA256 signing and SHA-256 payload fingerprints
- Durable delivery attempts with bounded exponential backoff
- Dead-letter queue with deliberate, audited replay
- Endpoint health, masked secrets, CSV export, and an operator dashboard
- Spring Boot integration tests covering the critical reliability contract
The bundled transport is deterministic (mock://success, mock://flaky, and mock://down) so the demo is safe and repeatable. Replacing it with a real HTTP adapter does not change the persistence or workflow model.
Requirements: Java 21+ and Maven 3.6.3+.
mvn spring-boot:runOpen http://localhost:8002.
mvn test| Method | Path | Purpose |
|---|---|---|
GET |
/api/dashboard |
Operational totals and delivery health |
GET |
/api/endpoints |
Receiver registry with masked secrets |
GET |
/api/events |
Durable event ledger |
POST |
/api/events |
Idempotent event ingestion and dispatch |
GET |
/api/events/{id}/attempts |
Attempt-level evidence |
POST |
/api/events/{id}/retry |
Audited manual replay |
GET |
/api/audit |
Operator and system audit activity |
GET |
/api/export/events.csv |
Stable CSV export |
See docs/architecture.md for component boundaries, data flow, and production hardening paths.
RelayForge is a portfolio-grade local MVP. The event model and operational workflow are real; outbound calls are simulated so reviewers can exercise retry and failure behavior without external infrastructure or secrets.
