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.

AWS · GCP
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 min
01

The 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 min
02

The 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 min
03

Compute: 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 min
04

Serving 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 min
05

Identity, 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 min
06

Running 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 min
07

The 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 min
08

Both 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 min
Read 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.