Audit Log Service · View 27 of 40 · 5 · Runtime
Question 2 answered
- Per event class, declared in the schema registry, enforced here, and not changeable by the producer at runtime.
- Fail-closed everywhere would make this service a first-order availability dependency of 410 others, at a 99.99% target most of its callers do not themselves meet. Fail-open everywhere buys availability and quietly sells the record.
- A privilege grant fails closed and refuses the business action. A document view fails open and emits a gap marker — which is itself an audit record, so an open failure is a visible event rather than a silence.
What the producer must do
- Spool locally for at least one hour and replay with the original occurred_at.
- Retry with backoff and an idempotency key, so a retry after a timeout does not become a second record.
- Declare the class at onboarding. The engineer finds out whether their action fails open or closed before it ships, not during the incident.
Risks
- The fail-closed set has to stay small. Every class added to it converts an availability problem here into an availability problem in 410 other services, and the review that adds one should treat it as a change to those services' SLOs.