Skip to content

Architecture Decision Records

Process: 0001 · Template: template.md

# Decision Status
0001 Record architecture decisions Accepted
0002 Define "one billion events" as cumulative throughput Accepted
0003 Layered, portable provisioning with environment profiles Accepted
0004 Use kind as the local substrate with a two-node dev profile Accepted
0005 Design Proxmox + Talos Linux as the second substrate Accepted
0006 Use OpenTofu for infrastructure as code Accepted
0007 Use Argo CD (app-of-apps) for GitOps Superseded by 0030 (pattern only; Argo CD remains the GitOps controller)
0008 Run Kafka with Strimzi in KRaft mode Accepted
0009 Write services in Go with franz-go Accepted
0010 Use ClickHouse (Altinity operator) as the analytical sink Accepted
0011 Use Valkey for deduplication and last-price cache Accepted
0012 Use Apicurio Registry for event schemas Accepted
0013 Use Kyverno for policy as code Accepted
0014 Expose services with Gateway API (Envoy Gateway) and cloud-provider-kind Accepted
0015 Use kube-prometheus-stack for metrics and dashboards Accepted
0016 Use Kafbat UI for Kafka inspection Accepted
0017 Test at four layers: application, infrastructure, load, chaos Accepted
0018 Use GitHub Actions for CI Accepted
0019 Treat financial regulations as reference frameworks for controls Accepted
0020 Enforce repository hygiene with pre-commit, gitleaks and Conventional Commits Accepted
0021 Model a MiFID II-style regulated equity market Accepted
0022 Build a deterministic price-time priority matching engine on Kafka Accepted
0023 Present the repository as a learning project and separate learning notes from operational docs Accepted
0024 Protect main with a ruleset and pin all third-party code by commit SHA Accepted
0025 Store IaC state in out-of-cluster SeaweedFS with locking, versioning and encryption Accepted
0026 Keep a single secret zero in the OS keychain; generate all other secrets Accepted
0027 Organise the repository by layer and select profiles explicitly Accepted
0028 Use Cilium as the CNI on every substrate, installed with bootstrap-and-adopt Accepted
0029 Pin Kubernetes through the kind provider, by image digest Accepted
0030 Generate Argo CD Applications with ApplicationSets; OpenTofu owns only the root Accepted
0031 Manage repository settings and branch protection as code Accepted
0032 Implement the Proxmox + Talos substrate behind the same output contract Accepted