BookFlow Platform is a portfolio-ready polyglot microservices system that
modernizes a legacy bookflow demo into a production-style platform with
modern v2 APIs, observability, and deployment-ready infrastructure.
Current status:
v2.0.0final portfolio release. This repository remains published as a showcase project and is intentionally in low-change maintenance mode.
Links: Portfolio site | Release notes | Architecture | Deployment guide
- 9 backend services plus a React frontend, API gateway, and legacy compatibility layer
- Legacy
v1behavior preserved alongside modernv2contracts and OpenAPI documentation - Local platform reproducible with Docker Compose, messaging, search, and observability tooling
- CI coverage for linting, tests, smoke checks, contract validation, E2E, SBOM, CodeQL, and Trivy
- Production-oriented assets for release notes, deployment compose, TLS reverse proxy, and observability
- Architecture overview
- Gateway OpenAPI contract
- Postman collection
- Release v2.0.0 notes
- Deployment guide
BookFlow Platform moderniza el proyecto original y lo convierte en una
plataforma de microservicios lista para portfolio tecnico. Mantiene
compatibilidad con el legado, introduce una API v2 moderna y demuestra
buenas practicas reales de backend, integracion y operacion.
- Compatibilidad total con endpoints legacy
v1 - Nueva API
v2con contratos OpenAPI - Plataforma local reproducible con Docker Compose
- Observabilidad integrada con Prometheus, Grafana, Loki y Tempo
- CI/CD con validaciones de calidad, seguridad y SBOM
- Documentacion de release y despliegue lista para presentacion tecnica
gateway: Fastify, capa de entrada unificada, seguridad basica y adaptadores legacyidentity: autenticacion JWT + refresh token + rolesusers-profile: perfiles publicos y datos no sensiblescatalog: Laravel API sobre PHP 8.4 con compatibilidadv1y dominio librosv2comments: FastAPI + MongoDBorders: Fastify + PostgreSQL + eventospayments-mock: FastAPI para simulacion de pagosnotifications: worker Node.js + RabbitMQsearch-index: Fastify + Meilisearchweb: React + TypeScript + Vite
- Backend: Node.js 22, Fastify, Python 3.12, FastAPI, PHP 8.4/Laravel
- Data: PostgreSQL, MySQL 8, MongoDB 7, Redis 7
- Messaging/Search: RabbitMQ, Meilisearch
- Observability: OpenTelemetry, Prometheus, Grafana, Loki, Tempo
- Frontend: React 18, TypeScript, Vite
- Legacy
v1:/register,/auth,/get-user-info,/posts,/api/get_all/:id_user/:token,/api/get/:id/:token - Moderna
v2:/v2/auth/*,/v2/catalog/books,/v2/comments,/v2/orders,/v2/payments,/v2/search
cp .env.example .env
docker compose up --build -dServicios clave:
- Gateway:
http://localhost:8080 - Frontend:
http://localhost:5173 - Catalog:
http://localhost:8081 - Grafana:
http://localhost:3006 - Prometheus:
http://localhost:9090 - RabbitMQ UI:
http://localhost:15673
Copy-Item .env.example .env
docker compose config
powershell -ExecutionPolicy Bypass -File scripts/smoke.ps1
powershell -ExecutionPolicy Bypass -File scripts/contract-test.ps1
powershell -ExecutionPolicy Bypass -File scripts/e2e-test.ps1- Despliegue productivo preparado en infra/deploy/production-compose.yml
- Reverse proxy TLS en infra/deploy/caddy/Caddyfile
- Variables de entorno de produccion en .env.production.example
- Guia paso a paso en docs/deployment.md
BookFlow Platform upgrades the original demo into a production-style
showcase. It preserves legacy behavior, adds modern v2 contracts, and
demonstrates secure integration, observability, and delivery workflows.
- Legacy-to-modern migration strategy
- API gateway compatibility and versioning
- Polyglot service design across Node.js, Python, PHP, and React
- Event-driven integration with RabbitMQ and search with Meilisearch
- Delivery discipline through CI, release notes, SBOM, and security scanning
- apps/web
- services/gateway
- services/identity
- services/catalog-laravel
- services/catalog
- services/comments
- services/orders
- infra
- docs/contracts
- legacy
- Architecture
- Gateway OpenAPI
- Postman Collection
- Release Notes
- Release Roadmap
- Deployment Guide
- Contributing
- Security
- Code of Conduct
- Changelog
- Validate locally with
npm run smoke,npm run contract, andnpm run e2e - Generate local milestone tags with
npm run release:tags
- Jesus David Manzanero
- Systems & Network Engineer
- Valencia, Spain
- GitHub: Jyzzu08
- LinkedIn: Jesus David Manzanero
- Email: jesusmanzanero00@gmail.com
MIT License. See LICENSE.