Resilience: hbf-notifications
Error handling and retry patterns for this service. Platform-wide patterns:
docs/architecture/resilience.md
HTTP Retry
- Library: got (v11.8.5) + hbf-core-api (inherited)
- Attempts: 3 (hbf-core-api only); direct got calls have no retry
- Backoff: Exponential with jitter (hbf-core-api only), network errors only
- On failure: hbf-core-api returns
HBFCoreApiResponsewith 503;AllExceptionsFilterreturns structured error
Queue Retry (if applicable)
N/A
Timeouts
| Call | Timeout | Configured in |
|---|---|---|
| All HTTP calls | Not set | N/A |
Circuit Breakers
None.
Fallback Strategy
| Failure scenario | Behaviour | User impact |
|---|---|---|
| hbf-core unreachable | Returns HBFCoreApiResponse with 503 status | Notification delivery fails gracefully |
| Unhandled exception | AllExceptionsFilter returns structured error response | Client receives error details |
Known Gaps
- hbf-core-api retry triggers only on network errors, not on 5xx responses.
- No timeout configured on any HTTP request (requests may hang indefinitely).
- No health endpoint.
- Direct got calls (outside hbf-core-api) have no retry at all.