Observability & audit
Three surfaces let you see what your integration did: domain events (business facts), the audit log (security-relevant actions), and metrics (per-endpoint counters). One correlation id threads them together.
Surfaces
| Surface | Endpoint | What it shows |
|---|---|---|
| Product events | GET /api/v2/products/{id}/events | Domain events for one product. |
| Audit log | GET /api/v2/audit-logs | Security-relevant actions in typed classes. |
| Deliveries | GET /api/v2/webhooks/{id}/deliveries | Delivery attempts + status. |
| Metrics | GET /api/v2/metrics | Per-endpoint counters. |
The correlation thread
Send X-Correlation-Id on any request and find the same id in the audit row's requestId. If omitted, one is generated (never a placeholder). Three GETs to the same route increment http_requests_total{endpoint="/api/v2/products"} without collapsing the endpoint label. This is the debugging thread to reach for first.