PROJECT / mini-projects
mini-projects — Backend patterns lab
An incremental lab of backend and distributed-systems patterns: one numbered project at a time, each spec-driven, from design fundamentals to event-driven microservices with full observability.
Problem
Design patterns and distributed systems are learned by building them, not by reading about them. What was missing was a structured space to build them one at a time, without mixing everything into one chaotic repo.
What I did
Project 01 (complete): a uniform EmailSender interface over SMTP/File/Null providers, with logging, retry, and circuit-breaker decorators, plus a Closed → Open → Half-Open state machine. Project 02 (in progress): event-driven order microservices with RabbitMQ, sagas, and full observability (Prometheus, Grafana, Jaeger tracing). All on Bun + TypeScript + Fastify, with Zod, Vitest, and Biome, and Docker Compose for local dev.
Highlights
- Adapter + Decorator + circuit-breaker state machine patterns (project 01, complete).
- Event-driven order microservices with RabbitMQ and sagas (project 02, in progress).
- End-to-end observability: Prometheus/Grafana metrics and Jaeger tracing.
- Every project is spec-driven, with Docker Compose to spin up the local environment.
Stack
- Bun
- TypeScript
- Fastify
- Zod
- RabbitMQ
- Prometheus
- Grafana
- Jaeger
- Docker
Links
—