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. Status — Proposed, 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.