ramirocerda

PROJECT / mini-projects

mini-projects — Backend patterns lab

Personal In progress

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.

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.

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.

  • 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.
  • Bun
  • TypeScript
  • Fastify
  • Zod
  • RabbitMQ
  • Prometheus
  • Grafana
  • Jaeger
  • Docker