MOBILE-ID · TRUSTED LTANS
AsyncAPI contracts
Versioned event contracts with producers, ordering scope and delivery rules.
Event contract
Kafka carries IDs, metadata and references. At-least-once delivery requires eventId deduplication; ordering is scoped to aggregateId. Transactional outbox and consumer inbox support reliable processing.
| Event | Producer | Version | Ordering |
|---|---|---|---|
| ArchiveRequested | Archive Service | 1.0 | aggregateId |
| ArchiveAccepted | Archive Service | 1.0 | aggregateId |
| ArchiveRejected | Archive Service | 1.0 | aggregateId |
| EvidenceGenerationRequested | Evidence Service | 1.0 | aggregateId |
| EvidenceGenerated | Evidence Service | 1.0 | aggregateId |
| EvidenceGenerationFailed | Evidence Service | 1.0 | aggregateId |
| VerificationRequested | Verification Service | 1.0 | aggregateId |
| VerificationCompleted | Verification Service | 1.0 | aggregateId |
| RenewalDue | Renewal Service | 1.0 | aggregateId |
| RenewalStarted | Renewal Service | 1.0 | aggregateId |
| RenewalCompleted | Renewal Service | 1.0 | aggregateId |
| RenewalFailed | Renewal Service | 1.0 | aggregateId |
| ExportRequested | Archive Service | 1.0 | aggregateId |
| ExportCompleted | Archive Service | 1.0 | aggregateId |
| TransferStarted | Archive Service | 1.0 | aggregateId |
| TransferCompleted | Archive Service | 1.0 | aggregateId |
| DispositionRequested | Storage Service | 1.0 | aggregateId |
| DispositionApproved | Storage Service | 1.0 | aggregateId |
| DispositionCompleted | Storage Service | 1.0 | aggregateId |
Delivery recovery
Use bounded backoff, then quarantine in DLQ. Authorized operators investigate, repair configuration, replay with the original eventId and reconcile outcomes. Webhooks use the same envelope with signature and replay-window validation.
{
"eventId": "evt-test-001",
"eventName": "EvidenceGenerated",
"version": "1.0",
"aggregateId": "arc-test-001",
"correlationId": "corr-test-001",
"idempotencyKey": "synthetic-test-001",
"occurredAt": "2026-10-15T05:00:00Z",
"state": "EVIDENCE_READY",
"reference": "evidence:arc-test-001:1"
}