Flowline
A distributed systems learning project — building a real-time chat app from scratch.
Flowline is a Discord-like chat application designed to scale from 1 to 10,000+ concurrent users. It's a deliberate, public study in distributed systems and Effect-ts, built to understand why patterns like consensus, sharding, and pub/sub exist, and to exercise Effect in a complex real-world domain.
Approach
Start simple, add complexity only when measured load demands it. Phases 1–13 cover the single-server MVP (WebSockets, auth, messaging, channels, presence, threads, uploads). Phase 14 stress-tests to 10k users to expose real bottlenecks. Phases 15+ introduce Redis pub/sub, message queues, and distributed patterns — each justified by a concrete failure, not speculation.
Stack
Bun · Effect-ts · PostgreSQL · SvelteKit · TypeScript monorepo
What makes it different
Every non-trivial decision is documented: a decision log captures alternatives considered and trade-offs accepted, and each phase ends with a written retrospective. The goal is a visible trail of reasoning that compounds over time — useful for future me, and honest about the mistakes along the way.
Status
See progress in the GitHub repository.