Skip to main content

Technical Decisions — Overview

This is the entry point for the technical decision suite. Each section here is a one-paragraph summary. Full decisions, options, and rationale live in the respective TD file.


What This Suite Covers​

Six documents that translate the platform's architecture and policies into concrete technical decisions. They are sequenced by dependency — each file builds on decisions confirmed in the ones before it. Where a decision is not yet confirmed, the file documents the options and what is needed to resolve it.

Decision Status used across all files: ✅ Decided — confirmed, can be built against · 🔍 Under Analysis — options identified, do not build against yet · 📅 Pending Session — requires a session or external input


TD1 — Core Tech Stack​

File: TD1_CoreTechStack.md

  • Two runtimes by purpose: FastAPI (Python) for computation-heavy engines, Node.js for I/O-heavy and high-concurrency engines
  • FastAPI engines: Eligibility, Rule Engine, Allocation, ITS Sync, Capacity Balance, HR Bank
  • Node.js engines: RBAC, Identity Bridge, Config Cascade, Notifications, Audit Log, Miqaat Lifecycle, and others
  • API Gateway in front of all services — concept confirmed, technology under analysis
  • Seven shared concerns across both runtimes: gateway routing, event schema, error response format, structured logging, health endpoints, auth passthrough, config access

TD2 — Event-Driven Structure​

File: TD2_EventDrivenStructure.md

  • Two communication patterns: Pattern A (synchronous HTTP call to Core before proceeding) and Pattern B (asynchronous event publish after a state change)
  • Standard event envelope confirmed: eventId, eventType, schemaVersion, timestamp, idempotencyKey, sourceModule, miqaatId, itsId, correlationId, payload
  • Module identity via API key; user identity via ITS token — two separate layers
  • Event publish authorization: three checks confirmed (sourceModule match, eventType in registered list, schema valid)
  • Enforcement mechanism (Core gateway vs direct bus ACLs) — 🔍 under analysis pending messaging technology decision

TD3 — Contracts​

File: TD3_Contracts.md

  • Three contract families: ITS Integration (C-001, C-005), Core API contracts (C-010 to C-019, one per engine), Event contracts (C-020+)
  • C-001: ITS SSO token validation at the Identity Bridge only — Core does not take over module login flows
  • C-005: Core is the single ITS data ingestion point, replacing 32 individual module syncs — mechanism under analysis
  • C-010 to C-019: one contract per Core engine covering endpoint, auth type, request/response, SLA, versioning
  • All Core APIs return a standard success/error envelope with requestId

TD4 — Module Build Guidance​

File: TD4_ModuleBuildGuidance.md

  • Modules stop owning: authentication, permission tables, eligibility logic, ITS sync, business rules in SQL, notification delivery, cross-module calls
  • Modules retain full ownership of: data, business logic, UI, deployment, and their own event schemas
  • System Definition Document required before any module build begins — no exceptions
  • Four migration tiers: Greenfield (Core-compliant from day one), Tier B (modern REST — progressive integration), Tier C (legacy .NET — HTTP calls + outbox pattern), Tier D (stored-proc — outbox inside same DB transaction, Core relay agent publishes)

TD5 — Infrastructure​

File: TD5_Infrastructure.md

  • Confirmed requirements: Docker for all Core services, three isolated environments, independent CI/CD per module, audit log durability, event bus replay, consumer groups, DLQ, topic-level access control, horizontal scaling, auto-scaling preference, structured JSON logging, distributed tracing via correlationId
  • Under analysis: container orchestration, API gateway technology, database per engine, messaging technology, observability tooling
  • All technology decisions blocked on cloud provider and network topology — resolved in the ITS infrastructure session
  • Eight specific questions documented as the input brief for that session

TD6 — Security​

File: TD6_Security.md

  • Core security posture confirmed through architecture: defense in depth, least privilege, zero trust, breach containment by API key revocation, immutable audit trail
  • Platform-specific threats mitigated by design: allocation fraud (Core is sole allocator), event impersonation (sourceModule check), privilege escalation (write endpoints blocked at gateway)
  • Confirmed module requirements: no local permission tables, no ITS data copies, no direct inter-module calls, no secrets in source control, HTTPS only
  • Pending dedicated security session: network security model, encryption at rest, PII handling policy, compliance requirements, log retention, penetration testing schedule

Pending Sessions​

Three sessions are required before blocked decisions can be resolved:

SessionUnblocks
ITS technical sessionC-001 (token format and lifecycle), C-005 (sync mechanism — pull / push / hybrid)
ITS infrastructure sessionCloud provider, VPC topology, orchestration, DB services, CI/CD toolchain (TD5)
Dedicated security sessionNetwork security, encryption at rest, PII policy, compliance, pen testing (TD6)

Foundation Files (pre-TD)​

These files were completed before the TD suite and are the source of the policies and principles the TD files build on:

FileContent
ITS_Core_Architecture_Brief.mdCore engine list, federation model, platform overview
CoreRolesRespons.mdCore responsibilities, miqaat lifecycle, data flow
CoreUtilities.mdOperational utilities, AI utilities, exclusion table
core_design_system.mdDesign token system, component library, accessibility
BusinessModulesAndPolicies.mdPlatform policies, system definition process, RBAC federation