9 parts · 84 chapters
Deploying The Core Bank
The Core Banking Architecture module designed a system on Postgres, Kafka, Redis and Bigtable, and deliberately said almost nothing about who operates them. This module takes that finished design and puts it on AWS and on GCP, one layer at a time, side by side.
Every part asks the same three questions of every component: which managed service, what does it actually cost, and what would you refuse to move. The answer is frequently that both platforms are fine and the decision is made by something other than technology, which is itself worth being able to say.
00
The frame: managed is a tradeoff, not a default
What you are actually buying from a cloud · The four questions to ask of any managed service · Lock-in, honestly assessed · The regulated-bank constraints that narrow the menu · Landing zones, accounts, and blast radius · Reading a cloud bill: the shapes that surprise you · Regions, zones, and what Part 7 residency forces · How to answer “AWS or GCP” in an interview
8 ch · ~50 min01The ledger: where the invariant lives
The requirement, restated for a cloud database · RDS, Aurora, and what Aurora actually changed · Cloud SQL, AlloyDB, and Spanner · Spanner: TrueTime, and the one thing it buys you · DynamoDB as a ledger: the honest version · Failover behaviour, and measuring real RTO · Backup, PITR, and restoring 34 GB in anger · Connection management: pgbouncer, RDS Proxy, and Lambda · Sharding on managed databases · The decision, with numbers
10 ch · ~20 min02The event backbone: Kafka and its substitutes
What Part 4 actually requires of a log · MSK, MSK Serverless, and self-managed Kafka · Kinesis Data Streams: the shard model · Pub/Sub: no partitions, and what that costs · Pub/Sub Lite, and Managed Kafka on GCP · Ordering: the property that decides this · Retention, replay, and rebuilding a consumer · The outbox relay on each platform · CDC: DMS, Datastream, and Debezium · The decision, with numbers
10 ch · ~55 min03Compute: where the posting path runs
The posting path is not a good Lambda · Lambda: cold starts, concurrency, and the VPC tax · Cloud Functions and Cloud Run · Containers: ECS, EKS, GKE, and Cloud Run again · Choosing per workload, not per company · The card authoriser: a latency-bound service · Batch and accrual jobs · Stateful components: the ISO 8583 gateway · Autoscaling that does not amplify an incident · The decision, with numbers
10 ch · ~55 min04Serving and analytics: Bigtable, BigQuery, and their twins
The two jobs from Part 11, restated · Bigtable, and why DynamoDB is the AWS answer · Row keys versus partition keys: the same problem · BigQuery versus Redshift versus Athena · Separation of storage and compute, and what it means for cost · The lakehouse: S3 plus Iceberg, GCS plus BigLake · Streaming ingestion on each platform · Caching: ElastiCache and Memorystore · The decision, with numbers
9 ch · ~50 min05Identity, secrets, and the compliance surface
Workload identity: IAM roles and service accounts · The Part 14 mTLS design, on each platform · Secrets: the lifecycle, not the store · Key management, HSMs, and PCI scope · Network isolation: VPCs, endpoints, and egress · Audit logging that satisfies an auditor · Data residency controls, per Part 7 · Compliance programmes, and what they do not cover · The decision, with numbers
9 ch · ~50 min06Running it: observability, deployment, and DR
The five signals from Part 13, on cloud native tooling · CloudWatch, EMF, and the cost of a metric · Cloud Monitoring, and OpenTelemetry as the escape hatch · Tracing across managed services · Deployment: blue-green, canary, and money · Infrastructure as code, and what belongs in it · Multi-AZ, multi-region, and the residency wall · Disaster recovery drills on managed services · Cost observability as an SRE concern · The decision, with numbers
10 ch · ~50 min07The migration: moving a running bank
The premise: you already have a system · What you move first, and what you move last · The strangler pattern applied to a ledger · Dual writing, and why it is the dual-write problem again · Migrating the event backbone without losing an event · Migrating data: DMS, Datastream, and the cutover · Proving the migration: reconciliation as the gate · Rollback, and the point of no return · What you would refuse to move · The migration plan, as one page
10 ch · ~55 min08Both boards, side by side
The full AWS architecture · The full GCP architecture · The service mapping table, complete · The monthly bill, itemised and compared · Where each platform is genuinely better · The hybrid question, and when it is not madness · What stays the same on both · Defending it: the fifteen hardest questions
8 ch · ~45 minRead the Core Banking Architecture module firstThis module assumes the system from
Core Banking Architecture already exists: the
double-entry ledger, the sharded write path, the transactional outbox, the
suspense accounts, the two-speed risk plane and the correctness signal. It refers
back to specific rounds constantly, and it will not make much sense without them.