Skip to main content

Logging Backends

AMP separates commitment logging (proof that message existed) from message archiving (storing encrypted content).

Commitment Backends

Commitment backends provide tamper-evident audit trails.
BackendDescriptionPropertiesCost
memoryIn-memory storeVolatile, fastFree
rekorSigstore transparency logImmutable, public, Merkle proofsFree

Archive Backends

Archive backends store encrypted message content.
BackendDescriptionPropertiesCost
memoryIn-memory storeVolatile, fastFree
s3AWS S3 with Object LockWORM compliance, supports S3-compatible servicesS3 pricing

Configuration

Backends are configured via environment variables:
# Commitment backend: 'memory' | 'rekor'
COMMITMENT_BACKEND=rekor

# Archive backend: 'memory' | 's3'
ARCHIVE_BACKEND=s3

Backend Interfaces

interface CommitmentBackend {
  readonly name: string;
  init(): Promise<void>;
  logCommitment(commitment: AuditCommitment): Promise<string | null>;
  verifyCommitment(commitmentHash: string): Promise<boolean>;
  isConnected(): boolean;
}

interface ArchiveBackend {
  readonly name: string;
  init(): Promise<void>;
  archive(message: SecureMessage, commitment: AuditCommitment): Promise<string | null>;
  retrieve(archiveId: string): Promise<ArchivePayload | SecureMessage | null>;
  isConnected(): boolean;
}