FlowFrame is an interactive visual simulator and learning environment for distributed architectures. Design systems on a canvas, configure components, run real requests, and watch execution unfold — frame by frame.
The Core Experience
No static mockups. FlowFrame compiles your topology into an executable simulation graph.
Drag components onto the visual canvas or write FlowFrame DSL in the Monaco editor. Place clients, gateways, load balancers, caches, databases, and queues.
Set capacity limits, accepted endpoints, cache TTLs, routing algorithms, Postgres connection pools, and custom HTTP request payloads in the node inspector.
Hit play. The engine simulates real request routing: REST calls hop through your topology following deterministic rules that mirror production infrastructure.
Watch packets animate in real time. Pause at any frame, inspect live node states, verify cache hit rates, inspect connection queues, and read execution logs.
Why FlowFrame
Most system design tools let you draw static boxes and arrows. FlowFrame executes the actual runtime behavior, captures every hop, and plays it back.
Requests actually route through your architecture. Client → Load Balancer → Server → Redis → Postgres — with real rules, not just animated arrows.
Every request hop becomes an inspectable frame. Pause at any moment, scrub backwards, or step forward through the execution graph.
Click any node's inspector. See Redis key snapshots, Postgres TCP connection pool depths, and load queues updating live as the simulation runs.
Every core concept has guided learning. Read theory, trigger node overload or failure, and watch recovery mechanisms — all on one screen.
Templates
Pre-wired architectures with real engine logic. Select one and watch the system run.
Round Robin and IP Hash distributing requests across 3 servers. Set server capacity to 0 to watch automatic failover.
Cache hit, cache miss → PostgreSQL fallback, and TTL invalidation. Redis snapshots update frame-by-frame.
Path-based routing to microservices & load balancers. Simulates route matching and 503 gateway timeouts.
Client requests a signed upload token from the server, then uploads directly to cloud storage bypassing proxies.
Explore
Complete syntax guide, component node specifications, and copy-pasteable architecture scripts.
Read Docs →Theory on the left, live simulation on the right. Understand cache-aside, load balancing, and queues interactively.
Start Learning →Write DSL or drag & drop nodes. Build and run any distributed architecture in your browser with zero setup.
Open Workspace →Engine Architecture
Every distributed system in FlowFrame executes according to deterministic rules that mirror real-world production infrastructure.
When a Server is connected to both Redis and PostgreSQL, it always queries Redis first. Only upon CACHE_MISS does it fallback to PostgreSQL.
Server's tcpConnectionsToPostgres sets maximum active connections. Saturated requests wait in a POSTGRES_POOL_WAIT queue until freed.
Balancers evaluate server capacity and filter out overloaded targets. If all downstream servers are at capacity, it returns a 503 error.
Servers validate incoming requests against declared acceptedEndpoints and HTTP verbs. Unmatched paths immediately trigger 404 or 405.
Publishing to a MessageQueue returns an immediate 202 Accepted ack to the client while consumer servers process messages in the background.
When an event is published to a PubSub broker, it broadcasts to all microservice workers registered to that topic channel.
Clients request a pre-signed token from the auth server, then upload heavy media assets directly to Cloud Storage bypassing server proxies.
When MessageQueue reaches capacity, overflow behavior dictates execution: BLOCK halts producer until space frees, or REJECT fails fast.
Complete event-driven microservices architecture — routing through API Gateways, load balancers, RabbitMQ message queues, and Postgres connection pools.
Free for education, personal learning, and non-commercial research. Released under PolyForm Noncommercial 1.0.0.