Mobile-ID · Long-term digital evidence preservation
Customers and partnersWorkflow demoContact
Trusted LTANS
Evaluate
MOBILE-ID · TRUSTED LTANS

Microservice ownership

Assign state and data ownership across services and identify dependencies and reconciliation controls.

VI–EN terminology

Nine logical groups, explicit ownership

Each group owns its domain decisions and data. API resources, request DTOs and job states are separate and do not determine deployment process counts.

GroupResponsibilityObjects/resourcesRequest DTO
Archive ServiceIntake, record location and export/transfer coordination.ArchiveObject, TransferPackage, Export resourceArchiveRequest, ExportRequest, TransferRequest
Evidence ServiceGenerate and publish immutable evidence revisions.EvidenceRecord, ArchiveTimeStamp history—
Verification ServiceEvaluate context-bound inputs and retain step reports.VerificationReportVerificationRequest
Renewal ServiceRenewal decisions and previous/next revision tracking.Renewal resource, Renewal decisionRenewalRequest
Policy ServiceVersioned profiles, retention and holds.Policy, Profile, LegalHold, RetentionDecisionHoldRequest
Storage ServiceStorage access, custody and lifecycle effects.CustodyProfile, DispositionRecordDispositionRequest
Trust Adapter ServiceCollect and check trust inputs.TrustContext, Trust source profile—
Audit & ReportingDecision logs, projections and usage reconciliation.AuditRecord, UsageReport—
Webhook Delivery ServiceEndpoint registration and outbound event delivery.Webhook, Delivery attempt (internal target)Webhook (schema reused for request/resource)
Trusted LTANS · Service dependenciesTrusted LTANS · Service-group connectionsAPI / Authorization · route to owning groups without bypassing policyArchive ServiceRecord store and package inventoryEvidence ServiceEvidence revision storeVerification ServiceVerification report storeRenewal ServiceRenewal decision/schedule storePolicy ServicePolicy and applied-snapshot storeStorage ServiceCustody configuration and per-copyoutcomesTrust Adapter ServiceVersioned trust-input storeAudit & ReportingAudit and projection storesWebhook Delivery ServiceEndpoint, attempt and delivery-statestore123456789Outbox / Inbox · Events: identifiers, metadata and references8 · Audit projection 9 · Webhook delivery No global-order guarantee1 Archive → Evidence: evidence generation2 Evidence → Trust: tokens/trust inputs3 Verification → Trust: validation context4 Renewal → Evidence: evidence continuation5 Archive → Policy: approved profiles/rights6 Archive → Storage: custody-based bytes7 Renewal → Storage: reread when requiredTarget logical design · Solid: internal interaction; dashed: events.
Target logical interactions; not an executed trace.
Download SVG diagram

Archive Service

Intake, record location and export/transfer coordination.

ScopeContent
Logical storeRecord store and package inventory
Objects / resourcesArchiveObject, TransferPackage, Export resource
Request DTOArchiveRequest, ExportRequest, TransferRequest
Shared structuresAcknowledgement, Job, ResourceResult
Target produced eventsArchiveRequested, ArchiveAccepted, ArchiveRejected, ExportRequested, ExportCompleted, TransferStarted, TransferCompleted
APIApplication scopeDocumentation
POST /v1/archivesarchives:writeArchive API
GET /v1/archivesarchives:readArchive API
GET /v1/archives/{archiveId}archives:readArchive API
GET /v1/archives/{archiveId}/statusarchives:readArchive API
POST /v1/archives/{archiveId}/exportsexports:writeExport / Transfer API
GET /v1/exports/{exportId}exports:readExport / Transfer API
POST /v1/archives/{archiveId}/transferstransfers:writeTransfer API
GET /v1/transfers/{transferId}transfers:readTransfer API
POST /v1/transfers/{transferId}/acknowledgementstransfers:acknowledgeTransfer API
GET /v1/jobs/{jobId}jobs:readJob API
Archive Service
BoundaryGroup-specific design
DependenciesPolicy resolves profiles; Storage confirms custody; Evidence runs after intake.
Consumed events / coordinationArchiveAccepted/EvidenceGenerated are proposed coordination inputs; concrete consumers need approval.
Partial failure and recoveryMetadata committed but outbox undelivered: reconcile outbox; never create a new record for the same command.
Authorization and auditEnforce tenant/object rights at deposit, read, export and transfer acknowledgement.

Evidence Service

Generate and publish immutable evidence revisions.

ScopeContent
Logical storeEvidence revision store
Objects / resourcesEvidenceRecord, ArchiveTimeStamp history
Request DTO—
Shared structuresDigest
Target produced eventsEvidenceGenerationRequested, EvidenceGenerated, EvidenceGenerationFailed
APIApplication scopeDocumentation
GET /v1/archives/{archiveId}/evidenceevidence:readEvidence API
GET /v1/archives/{archiveId}/evidence/{evidenceVersion}evidence:readEvidence API
Evidence Service
BoundaryGroup-specific design
DependenciesStorage supplies exact bytes; Trust Adapter validated tokens; Policy pins syntax.
Consumed events / coordinationEvidenceGenerationRequested is a proposed input; channel names do not establish deployed topology.
Partial failure and recoveryToken received but storage failed: retain TSA transaction identity and validate before publishing.
Authorization and auditOnly the owner publishes revisions; evidence-read permission does not imply content access.

Verification Service

Evaluate context-bound inputs and retain step reports.

ScopeContent
Logical storeVerification report store
Objects / resourcesVerificationReport
Request DTOVerificationRequest
Shared structuresJob, Problem
Target produced eventsVerificationRequested, VerificationCompleted
APIApplication scopeDocumentation
POST /v1/archives/{archiveId}/verificationverification:writeVerification API
GET /v1/verifications/{verificationId}verification:readVerification API
Verification Service
BoundaryGroup-specific design
DependenciesEvidence supplies revision; Storage authorized bytes; Trust supplies context.
Consumed events / coordinationVerificationRequested is a proposed orchestration input; the report is the conclusion source.
Partial failure and recoveryMissing status data: report the unsupported step; separate execution errors from INDETERMINATE.
Authorization and auditAuthorize verification, content access and report reading separately within each tenant.

Renewal Service

Renewal decisions and previous/next revision tracking.

ScopeContent
Logical storeRenewal decision/schedule store
Objects / resourcesRenewal resource, Renewal decision
Request DTORenewalRequest
Shared structuresJob, Digest
Target produced eventsRenewalDue, RenewalStarted, RenewalCompleted, RenewalFailed
APIApplication scopeDocumentation
POST /v1/renewalsrenewals:writeRenewal API
GET /v1/renewals/{renewalId}renewals:readRenewal API
Renewal & Crypto-Agility
BoundaryGroup-specific design
DependenciesPolicy supplies risk decisions; Evidence pins history; Storage ensures required reread access.
Consumed events / coordinationRenewalDue triggers assessment, not automatic approval.
Partial failure and recoveryConcurrent jobs on one source: recheck revision before publishing; byte-access loss blocks HASH_TREE and retains the old schedule.
Authorization and auditSeparate assessment, approval and execution under the profile; retain required approvalId.

Policy Service

Versioned profiles, retention and holds.

ScopeContent
Logical storePolicy and applied-snapshot store
Objects / resourcesPolicy, Profile, LegalHold, RetentionDecision
Request DTOHoldRequest
Shared structuresResourceResult
Target produced eventsNo dedicated published event in the current 19-event contract.
APIApplication scopeDocumentation
GET /v1/profilespolicies:readPolicy and Profile API
GET /v1/profiles/{profileId}policies:readPolicy and Profile API
GET /v1/policies/{policyId}policies:readPolicy and Profile API
POST /v1/archives/{archiveId}/holdsholds:writePolicy and Profile API
Policy Governance
BoundaryGroup-specific design
DependenciesIdentity identifies approvers; Archive pins applied snapshots; Storage receives hold constraints.
Consumed events / coordinationNo dedicated policy/hold event is published among the 19; internal coordination remains to be agreed.
Partial failure and recoveryInvalid configuration: retain old applied snapshots, stop new activation; rollback retains before/after decisions.
Authorization and auditSeparate author, approve and activate; policy-read APIs confer no write authority.

Storage Service

Storage access, custody and lifecycle effects.

ScopeContent
Logical storeCustody configuration and per-copy outcomes
Objects / resourcesCustodyProfile, DispositionRecord
Request DTODispositionRequest
Shared structuresJob
Target produced eventsDispositionRequested, DispositionApproved, DispositionCompleted
APIApplication scopeDocumentation
POST /v1/archives/{archiveId}/dispositionsdisposition:writeArchive API
Data Custody
BoundaryGroup-specific design
DependenciesArchive identifies objects; Policy supplies hold/retention; deployment KMS governs keys.
Consumed events / coordinationDispositionRequested/Approved are contracted events; rights and guards still apply before effects.
Partial failure and recoveryPartial disposition: retain per-copy checkpoints; a new hold blocks residual work without false completion.
Authorization and auditStorage and key custodians have different rights; audit reads, exports and effects.

Trust Adapter Service

Collect and check trust inputs.

ScopeContent
Logical storeVersioned trust-input store
Objects / resourcesTrustContext, Trust source profile
Request DTO—
Shared structuresDigest
Target produced eventsNo dedicated published event in the current 19-event contract.

No public administration API is exposed for this group in the current contract.

Trust Infrastructure
BoundaryGroup-specific design
DependenciesDepends on approved CA/TSA and OCSP/CRL sources; current responses cannot replace history.
Consumed events / coordinationNo public source-change channel is defined; do not invent events.
Partial failure and recoveryTimeout: retain reconcilable dependency failure; fallback still checks imprint, policy and certificates.
Authorization and auditSeparate trust-source administration and key use; network policy constrains source URLs.

Audit & Reporting

Decision logs, projections and usage reconciliation.

ScopeContent
Logical storeAudit and projection stores
Objects / resourcesAuditRecord, UsageReport
Request DTO—
Shared structures—
Target produced eventsNo dedicated published event in the current 19-event contract.
APIApplication scopeDocumentation
GET /v1/audit-recordsaudit:readAudit and Reporting API
GET /v1/usage-reportsbilling:readAudit and Reporting API
Management Reporting
BoundaryGroup-specific design
DependenciesInputs are business decisions/jobs; reports are scoped rebuildable projections.
Consumed events / coordinationConsumers and metering basis require deployment agreement; replay must not increase totals.
Partial failure and recoveryLagging projection: expose watermark/unreconciled scope; correct closed periods through revisions.
Authorization and auditaudit:read differs from billing:read; exclude cross-tenant data and tokens.

Webhook Delivery Service

Endpoint registration and outbound event delivery.

ScopeContent
Logical storeEndpoint, attempt and delivery-state store
Objects / resourcesWebhook, Delivery attempt (internal target)
Request DTOWebhook (schema reused for request/resource)
Shared structuresProblem
Target produced eventsNo dedicated published event in the current 19-event contract.
APIApplication scopeDocumentation
POST /v1/webhookswebhooks:writeWebhooks
GET /v1/webhooks/{webhookId}webhooks:readWebhooks
DELETE /v1/webhooks/{webhookId}webhooks:writeWebhooks
Webhooks
BoundaryGroup-specific design
DependenciesUses authorized events, endpoint configuration and signing keys; delivery is separate from business completion.
Consumed events / coordinationWebhook events select outbound delivery; this does not define internal subscriptions.
Partial failure and recoveryDestination fails: retain attempts/retry schedule; replay retains eventId with a new delivery attempt; consumers deduplicate.
Authorization and auditCheck HTTPS/SSRF/allowlist at registration and connection; exclude secrets from logs/UI.

Jobs and cross-service coordination

Job resource

GET /v1/jobs/{jobId} tracks execution; SUCCEEDED only means processing completed. Verification can still conclude INDETERMINATE.

Transactions and events

Use a transactional outbox and context-aware deduplicating inbox. Concrete consumers require deployment configuration, not inference from the producer.

Event catalog · Asynchronous Jobs

API, adapter and Core boundaries

WSO2 GatewayGateway controlsLTANS API ServicesBusiness grants / JobsCore LTANS AdapterProtocol / profile / ID mappingCore LTANSProfile-driven engine

Keycloak issues tokens/identity rather than executing archive work on every request. Nine service groups include Webhook Delivery; adapter/infrastructure do not change the group count. Deployment determines topology.

Next steps

Search LTANS documentation

Expanded illustration