Skip to main content

Architecture Decision Records

This section contains all Architecture Decision Records (ADRs) for the EthioConnect platform. ADRs document significant architectural choices, their context, and their consequences.

Index

ADRTitleStatus
0001Multi-Region Deployment StrategyAccepted
0011Tenant Admin Self-ServiceAccepted
0012Kubernetes Deployment StrategyAccepted
0013Helm Chart StructureAccepted
0014Client SDK ArchitectureAccepted
0015Cloud Infrastructure StrategyAccepted
0016GitOps Deployment ModelAccepted
0017Mobile SDK ArchitectureAccepted
0018Documentation Site (Docusaurus)Accepted
0019EthioConnect Branding and Dart/Flutter DocumentationAccepted
0020Self-Serve Onboarding and Unified Web OriginAccepted
0021Split the Tenant Dashboard and the Platform-Operator Console into Two AppsAccepted
0022Native Dart SDK (commbaas)Accepted
0024Signup Notifications via Transactional Outbox and Email ChannelAccepted
0025Tenant Suspension: Event-Driven Enforcement and NotificationAccepted
0026Payment Control: Prepaid/Postpaid Subscriptions and Hour-Balance EnforcementAccepted (§3/§4 amended by 0028)
0028Prepaid Hours: Soft Exhaustion Gate, Distinct from SuspensionAccepted
0032Scheduler Service Boundary and the Shared Webhook Delivery PackageAccepted
0033Postgres Claim-Queue Scheduling with SKIP LOCKED and a Unique-Occurrence IndexAccepted
0034Scheduler Execution Semantics: At-Least-Once Delivery, Exactly-Once Run Materialisation, Idempotency KeyAccepted
0035Cron Semantics: 1-Minute Granularity, IANA Timezones, DST Rules, tzdata PinningAccepted
0036Misfire and Catch-Up Policy; Suspension Windows Are Never BackfilledAccepted
0037Deterministic Jitter and the scheduled_for / fire_after SplitAccepted
0038schedule-events Topic: Partitioning, Retention, and the Outbox vs Best-Effort SplitAccepted
0039Scheduler Quotas and Limits Under the Entitlement ModelAccepted
0040Scheduler Outbound Egress, SSRF Posture, and Secret HandlingAccepted (security-review ship gate)
0041Scheduler Single-Region Planning and DR on Regional FailoverAccepted
0042Customer Site on Firebase Hosting at ethioconnect.netAccepted

Format

Each ADR follows the structure:

  1. Title — Short descriptive name prefixed with the ADR number.
  2. StatusProposed, Accepted, Deprecated, or Superseded.
  3. Context — The forces at play and the problem being addressed.
  4. Decision — What was decided and why.
  5. Consequences — Trade-offs, risks, and follow-up work.