Skip to main content

What is an ADR?

An Architecture Decision Record (ADR) captures a significant design or technology choice, the context that led to it, and the tradeoffs accepted. They are write-once records — decisions are not revised in place. A superseding decision results in the original ADR being marked Superseded and a new ADR being created.

Decision Index

ADR-001 — Event-Driven Pipeline

Status: Accepted — Async Kafka-based pipeline for all media processing stages in place of synchronous HTTP chaining.

ADR-002 — CDN-First Media Delivery

Status: Accepted — All media delivered via CDN; origin storage (S3) is never directly client-accessible.

ADR-003 — Nigeria Residency via IAM

Status: Accepted — Nigeria data residency enforced at the IAM bucket policy layer, not the application layer.

ADR-004 — Multi-DRM CMAF

Status: Accepted — CMAF CENC+CBCS dual encryption for a single segment set serving all DRM ecosystems.

ADR-005 — Automated Storage Tiering

Status: Accepted — Automated hot/cold/archive tiering engine based on access frequency thresholds.

ADR-006 — Two-Tower ML Model

Status: Accepted — Two-tower neural network with ANN (FAISS/ScaNN) for personalised content retrieval at catalogue scale.

ADR-007 — Dual-Currency Payout

Status: Accepted — Paystack (NGN) + Stripe (USD) dual-processor architecture with FX rate locking at payout period start.

ADR-008 — Saga Orchestration

Status: Accepted — Orchestration-based distributed sagas via Temporal.io for multi-service transactions.

Build docs developers (and LLMs) love