Open source · free forever

See how systems really work.

HowItFlows is the place for visual learners. Animated explorers show every message, hop and handshake inside the data and cloud systems you use every day, step by step, with working code to try yourself.

10
databases
7
languages
550+
code snippets
10
topics planned
Your appBrokerStorageReplicas
Explorers

Pick a system and press play

Live

Databases

Watch 10 databases connect, authenticate, query and replicate on the wire, then grab working code in 7 languages.

PgMySLMSMgRdCaN4EsDy
10 explorersOpen
Coming soon

Streaming

Producers, brokers, partitions and consumer groups: follow a record from send to commit, through acks and rebalances.

KafkaPulsarKinesisRabbitMQ
Coming soon

Change data capture

A row changes in Postgres, and the change rides the WAL into Kafka and lands in your warehouse.

DebeziumKafka Connect
Coming soon

Query engines

SQL in, results out: parsing, planning, optimizing, stages and the shuffle, animated.

SparkTrinoDuckDB
Coming soon

Lakehouse formats

How a commit becomes snapshots, manifests and data files, and how time travel and compaction work.

IcebergDelta LakeHudi
Coming soon

Orchestration

Scheduler, executor and workers: watch a DAG run, retry and backfill.

AirflowDagsterPrefect
Coming soon

Cloud networking

One request through DNS, load balancers, subnets, NAT and private endpoints, compared across clouds.

AWSGCPAzure
Coming soon

Identity & auth

Token exchanges you can see: OAuth, OIDC, STS role assumption and workload identity.

OAuth 2.0OIDCAWS STS
Coming soon

Kubernetes

kubectl apply → API server → etcd → scheduler → kubelet: the life of a pod.

PodsDeploymentsServices
Coming soon

Distributed systems

Raft elections, quorums and consistent hashing. Kill a node and watch the cluster recover.

RaftQuorumsHash rings
How it works

Watch it, step through it, build it

Watch

An animated topology shows each packet travelling between your app, servers, disks and replicas.

Step through

Scrub the timeline message by message. Every step explains what happens and why, with the real protocol details.

Build

Generate working code for your own connection settings: connect, create a schema, seed data and run CRUD, in 7 languages.