Default language is English; your choice is saved in this browser.

Portfolio

Backend systems, microservices, and architectures I designed and shipped — with context on role, problem, and impact.

SafeSense — SIMS Technology IoT Platform

Production IoT platform for agroindustry and laboratories in Peru: portable sensors, real-time monitoring, automated alerts, and audit-ready dashboards — full stack from Arduino edge to web and mobile.

Impact Live product at sims-technology.com — end-to-end SafeSense stack with multi-tenant operations, incident alerts (email, SMS, WhatsApp), and exportable compliance reports. Producto en vivo en sims-technology.com — stack SafeSense de punta a punta con operación multitenant, alertas de incidencias (email, SMS, WhatsApp) y reportes exportables para cumplimiento.

IoTMulti-tenantReal-timeFull stack

Project breakdown

SafeSense — SIMS Technology IoT Platform

Role Full-stack engineer — hardware edge, API architecture, Angular v1, React v2 migration, and Expo mobile Ingeniero full stack — edge hardware, arquitectura API, Angular v1, migración React v2 y móvil Expo

  1. Hardware & edge (Arduino / MQTT) Hardware y edge (Arduino / MQTT)

    Portable Wi-Fi temperature sensors with MQTT telemetry (~30s intervals), rechargeable battery (~5h), and 3D-printed enclosures for cold-chain and lab transport. Sensores portátiles Wi-Fi con telemetría MQTT (~30s), batería recargable (~5h) y carcasas impresas en 3D para cadena de frío y transporte en laboratorio.

    • Critical range monitoring (2°C–8°C) for agro and clinical samples Monitoreo de rango crítico (2°C–8°C) para agro y muestras clínicas
    • Lightweight protocol and low-power edge design Protocolo liviano y diseño edge de bajo consumo
    ArduinoMQTTWi-FiEMQX
  2. Waterbox API (NestJS backend) API Waterbox (backend NestJS)

    Central IoT orchestrator: REST, Socket.IO, and MQTT client with multi-tenant companies, sensors, measurements, panels, and automated incident notifications. Orquestador IoT central: REST, Socket.IO y cliente MQTT con empresas multitenant, sensores, mediciones, paneles y notificaciones automáticas de incidencias.

    • Migration NestJS 6 → 11 with hexagonal modules and command/query handlers Migración NestJS 6 → 11 con módulos hexagonales y handlers command/query
    • Email, SMS (Nexmo), and mobile push for threshold breaches Email, SMS (Nexmo) y push móvil ante umbrales críticos
    NestJS 11CQRSHexagonalSequelizeMySQLSocket.IOFirebase FCM
  3. Web dashboard v1 (Angular 9 — SIMS) Dashboard web v1 (Angular 9 — SIMS)

    First-generation SIMS console: lazy-loaded modules for sensor management, live measurements, charts, sectors, components, accounts, and operational reports. Primera consola SIMS: módulos lazy-loaded para gestión de sensores, mediciones en vivo, gráficos, sectores, componentes, cuentas y reportes operativos.

    • Production foundation integrated with Waterbox REST API Base productiva integrada con API REST Waterbox
    • Modules: gestión sensores, sensores, mediciones, incidencias Módulos: gestión sensores, sensores, mediciones, incidencias
    Angular 9TypeScriptRxJSBootstrapChart.js
  4. Web dashboard v2 (React migration) Dashboard web v2 (migración React)

    Full Angular → React rewrite: feature-based SPA with Vite, Tailwind, Recharts, Socket.IO live updates, role-based access, and Excel exports. Reescritura completa Angular → React: SPA por features con Vite, Tailwind, Recharts, actualizaciones Socket.IO, roles y exportación Excel.

    • Feature parity with v1 plus improved UX and maintainability Paridad con v1 y mejor UX/mantenibilidad
    • Monitoring, incidents, sectors, and components modules Módulos monitoreo, incidencias, sectores y componentes
    React 18TypeScriptViteTailwind CSSRechartsSocket.IO
  5. SafeSense mobile (Expo) SafeSense móvil (Expo)

    React Native app for field teams: JWT in SecureStore, live sensor groups, incident history, Socket.IO refresh, and FCM push registration. App React Native para equipos de campo: JWT en SecureStore, grupos de sensores en vivo, historial de incidencias, refresh Socket.IO y registro FCM.

    • Tab navigation: home, alerts, monitoring, account Navegación por tabs: inicio, alertas, monitoreo, cuenta
    • Same real-time incident contract as web dashboards Mismo contrato de incidencias en tiempo real que los dashboards web
    ExpoReact NativeTypeScriptSocket.IOFCM
Technical Academy (GitHub)

Open curriculum repositories for AWS certification prep, language deep dives, and applied AI engineering — structured labs and notes for self-paced learning.

Impact Eight public academies on GitHub covering AWS DVA, JS internals, TypeScript, React, AI engineering, software architecture, Java, and Go — each repo is a modular learning track. Ocho academias públicas en GitHub: AWS DVA, JS internals, TypeScript, React, AI engineering, arquitectura de software, Java y Go — cada repo es un track modular de aprendizaje.

AcademyOpen sourceLearning

Project breakdown

Technical Academy (GitHub)

Role Author & maintainer Autor y mantenedor

  1. AWS Developer Associate (DVA-C02) AWS Developer Associate (DVA-C02)

    Structured labs and notes for the AWS Certified Developer – Associate exam: core services, serverless, CI/CD, and exam-style scenarios. Labs y apuntes estructurados para AWS Certified Developer – Associate: servicios core, serverless, CI/CD y escenarios tipo examen.

    • Hands-on modules aligned with DVA-C02 domains Módulos prácticos alineados a dominios DVA-C02
    • Companion to the AWS Developer Associate certification on this site Complemento a la certificación AWS Developer Associate en este sitio
    AWSLambdaDynamoDBS3CloudFormation
    GitHub
  2. JavaScript Internals Academy Academia JavaScript Internals

    Deep dive into how JavaScript works: event loop, closures, prototypes, memory, and V8-oriented concepts for stronger debugging and interviews. Profundización en cómo funciona JavaScript: event loop, closures, prototipos, memoria y conceptos orientados a V8 para depurar mejor y entrevistas.

    • From language mechanics to production mental models De mecánica del lenguaje a modelos mentales de producción
    JavaScriptNode.jsV8Event loop
    GitHub
  3. TypeScript Academy Academia TypeScript

    Progressive TypeScript curriculum: strict typing, generics, utility types, and patterns for backend and full-stack codebases. Currículo progresivo de TypeScript: tipado estricto, genéricos, utility types y patrones para codebases backend y full stack.

    • Exercises mapped to real NestJS and React projects Ejercicios mapeados a proyectos reales NestJS y React
    TypeScriptStrict modeGenericsDTOs
    GitHub
  4. React Academy Academia React

    Progressive React curriculum: components, hooks, state patterns, performance, and testing — from SPA fundamentals to production-ready UI architecture. Currículo progresivo de React: componentes, hooks, patrones de estado, rendimiento y testing — de fundamentos SPA a arquitectura UI lista para producción.

    • Exercises aligned with modern React 18+ and component-driven design Ejercicios alineados con React 18+ y diseño orientado a componentes
    ReactHooksTypeScriptTesting Library
    GitHub
  5. AI Engineer Academy Academia AI Engineer

    Applied AI engineering track: LLM integration, RAG basics, agents, evaluation, and production guardrails for backend developers. Track de ingeniería de IA aplicada: integración LLM, bases de RAG, agentes, evaluación y guardrails productivos para backend developers.

    • Bridges backend craft with generative AI delivery Conecta oficio backend con entrega de IA generativa
    LLMsRAGAgentsPrompt engineering
    GitHub
  6. Software Architecture Academy Academia Arquitectura

    Structured path through system design and backend architecture: hexagonal and clean architecture, DDD, microservices, event-driven patterns, and trade-offs for production systems. Ruta estructurada de diseño de sistemas y arquitectura backend: hexagonal y clean architecture, DDD, microservicios, patrones event-driven y trade-offs para sistemas productivos.

    • From layered monoliths to bounded contexts and integration patterns De monolitos en capas a bounded contexts y patrones de integración
    • Aligned with NestJS and cloud-native delivery on this portfolio Alineada con NestJS y entrega cloud-native en este portafolio
    HexagonalDDDMicroservicesCQRSEvent-driven
    GitHub
  7. Java Academy Academia Java

    Java fundamentals through OOP, collections, concurrency, and JVM concepts — structured for developers moving into enterprise stacks. Fundamentos Java: OOP, colecciones, concurrencia y conceptos JVM — estructurado para devs que migran a stacks enterprise.

    • Modular lessons with practical exercises Lecciones modulares con ejercicios prácticos
    JavaJVMOOPConcurrency
    GitHub
  8. Go Academy Academia Go

    Go language track: goroutines, channels, interfaces, and idiomatic patterns for CLI tools and cloud-native microservices. Track de Go: goroutines, channels, interfaces y patrones idiomáticos para CLI y microservicios cloud-native.

    • Focus on simplicity and performance for backend services Foco en simplicidad y rendimiento para servicios backend
    GoGoroutinesChannelsCloud-native
    GitHub
Making Code

Making Code

Reference Featured

Technical blog on software engineering, cryptography, blockchain, and applied AI — articles and tutorials from production experience.

Impact 18+ articles on algorithms, cryptography, and backend patterns; reference for peers and interviews. 18+ artículos sobre algoritmos, criptografía y patrones backend; referencia para colegas y entrevistas.

BlogNext.jsMDX

Project breakdown

Making Code

Role Author & maintainer Autor y mantenedor

  1. Next.js application shell Shell de aplicación Next.js

    App Router layout, navigation, and article listing — optimized for reading long-form technical content. Layout App Router, navegación y listado de artículos — optimizado para contenido técnico extenso.

    • Fast navigation between series and categories Navegación rápida entre series y categorías
    Next.jsReactTypeScript
  2. MDX content pipeline Pipeline de contenido MDX

    Articles authored in MDX with code samples, diagrams, and metadata for cryptography, algorithms, blockchain, and backend topics. Artículos en MDX con muestras de código, diagramas y metadatos sobre criptografía, algoritmos, blockchain y backend.

    • 18+ published articles from production experience 18+ artículos publicados desde experiencia productiva
    MDXMarkdownFrontmatter
  3. UI & reading experience UI y experiencia de lectura

    Tailwind-based typography and dark-theme layout focused on readability and code blocks. Tipografía con Tailwind y layout tema oscuro enfocado en legibilidad y bloques de código.

    • Consistent technical blog UX across topics UX de blog técnico consistente entre temas
    Tailwind CSSTypography
  4. SEO & deployment SEO y despliegue

    Static generation, Open Graph metadata, and production hosting at makingcode.dev. Generación estática, metadatos Open Graph y hosting productivo en makingcode.dev.

    • Public reference for peers and interview deep-dives Referencia pública para colegas y profundizaciones en entrevistas
    SSGSEOVercel/hosting
Personal Portfolio (andresed.dev)

Bilingual static portfolio for a Senior Backend Engineer — Astro, TypeScript, Tailwind, EmailJS contact, and recruiter-focused sections.

Impact Open-source blueprint with EN/ES i18n, PageSpeed-focused assets, and contact flow — live at andresed.dev. Blueprint open source con i18n EN/ES, assets optimizados para PageSpeed y flujo de contacto — en vivo en andresed.dev.

PortfolioAstroStatic Site

Project breakdown

Personal Portfolio (andresed.dev)

Role Author & maintainer Autor y mantenedor

  1. Astro static site Sitio estático Astro

    Zero-JS-by-default pages with partial hydration — portfolio, blog index, and contact routes built as static HTML. Páginas con JS mínimo por defecto e hidratación parcial — portafolio, índice del blog y contacto como HTML estático.

    • Sub-second loads for recruiter-first scanning Cargas sub-segundo para revisión rápida por reclutadores
    Astro 5TypeScriptStatic output
  2. Bilingual EN / ES Bilingüe EN / ES

    Client-side locale toggle with dictionary keys and paired copy blocks across all sections. Toggle de idioma en cliente con claves de diccionario y bloques de texto emparejados en todas las secciones.

    • Same site serves English and Spanish audiences El mismo sitio sirve audiencias en inglés y español
    i18nHTML langDictionary
  3. Recruiter-focused sections Secciones orientadas a reclutadores

    Hero, resume timeline, certifications, featured projects with stack modals, publications grid, and portfolio filters. Hero, línea de tiempo del CV, certificaciones, proyectos destacados con modales de stack, grid de publicaciones y filtros de portafolio.

    • Structured proof of backend depth and delivery Prueba estructurada de profundidad backend y entrega
    Data-drivenAstro components
  4. Contact & media pipeline Contacto y pipeline de medios

    EmailJS contact form, optimized images (Sharp), CV download, and SEO/sitemap configuration. Formulario EmailJS, imágenes optimizadas (Sharp), descarga de CV y configuración SEO/sitemap.

    • Open-source blueprint at github.com/AndresED/portafolio-2026 Blueprint open source en github.com/AndresED/portafolio-2026
    EmailJSSharpOpen Graph
Banking Platform (Microservices + Events)

Three NestJS microservices with PostgreSQL per service and a Kafka-compatible event bus (Redpanda).

Impact Outbox pattern, idempotent consumers, retry/DLQ policies, and isolated DB per service — production-grade event flow. Patrón outbox, consumidores idempotentes, reintentos/DLQ y BD aislada por servicio — flujo de eventos listo para producción.

MicroservicesEvent-DrivenCQRS

Project breakdown

Banking Platform (Microservices + Events)

Role Architect & implementer Arquitecto e implementador

  1. Accounts microservice Microservicio de cuentas

    Owns account aggregates and balance state in an isolated PostgreSQL database — publishes domain events on changes. Posee agregados de cuenta y estado de saldo en PostgreSQL aislada — publica eventos de dominio ante cambios.

    • Database-per-service boundary Límite de base de datos por servicio
    NestJSPostgreSQLTypeORM
  2. Transactions microservice Microservicio de transacciones

    Handles transfers and ledger operations with its own PostgreSQL schema — consumes and emits banking-style events. Maneja transferencias y operaciones de ledger con esquema PostgreSQL propio — consume y emite eventos tipo banca.

    • Decoupled from accounts via async messaging Desacoplado de cuentas vía mensajería async
    NestJSPostgreSQLCQRS
  3. Redpanda / Kafka event bus Bus de eventos Redpanda / Kafka

    Kafka-compatible streaming backbone connecting all services with typed topics and consumer groups. Backbone de streaming compatible con Kafka conectando servicios con topics tipados y consumer groups.

    • Event-driven integration instead of synchronous HTTP chains Integración orientada a eventos en lugar de cadenas HTTP síncronas
    RedpandaKafkaJSDocker
  4. Outbox, idempotency & DLQ Outbox, idempotencia y DLQ

    Transactional outbox for safe publishes, idempotent consumers, retry policies, and dead-letter handling for poison messages. Outbox transaccional para publicaciones seguras, consumidores idempotentes, reintentos y dead-letter para mensajes poison.

    • Production-grade failure recovery patterns Patrones de recuperación ante fallos listos para producción
    Outbox patternIdempotencyDLQ
NestJS Enterprise Starter

NestJS Enterprise Starter

Reference Featured

Production-ready boilerplate with Clean Architecture, CQRS, TypeORM, and PostgreSQL.

Impact Documented modules for CQRS, hexagonal boundaries, and deployment patterns — accelerates new service bootstrapping. Módulos documentados para CQRS, límites hexagonales y despliegue — acelera el arranque de nuevos servicios.

ArchitectureBoilerplateMulti-tenant

Project breakdown

NestJS Enterprise Starter

Role Author & maintainer Autor y mantenedor

  1. Domain & application (CQRS) Dominio y aplicación (CQRS)

    Entities, value objects, commands, queries, and handlers with explicit ports — no framework imports in domain code. Entidades, value objects, commands, queries y handlers con ports explícitos — sin imports de framework en dominio.

    • Testable use cases without database or HTTP Casos de uso testeables sin base de datos ni HTTP
    Clean ArchitectureCQRS@nestjs/cqrs
  2. Infrastructure adapters Adaptadores de infraestructura

    TypeORM repositories, external HTTP clients, and messaging adapters implementing domain ports. Repositorios TypeORM, clientes HTTP externos y adaptadores de mensajería implementando ports del dominio.

    • Swap persistence or providers without touching application layer Cambiar persistencia o proveedores sin tocar application
    TypeORMPostgreSQLAdapters
  3. Auth & multi-tenant routing Auth y enrutamiento multitenant

    JWT/Passport guards, tenant resolution middleware, and per-tenant connection strategies. Guards JWT/Passport, middleware de resolución de tenant y estrategias de conexión por tenant.

    • Scales from single-tenant monolith to isolated tenants Escala de monolito single-tenant a tenants aislados
    JWTPassportMulti-tenant
  4. Background jobs & cache Jobs en background y caché

    BullMQ workers on Redis for async tasks plus caching hooks for hot read paths. Workers BullMQ sobre Redis para tareas async más hooks de caché en lecturas calientes.

    • Reference deployment patterns documented in repo Patrones de despliegue documentados en el repo
    BullMQRedis
Document Notarization with Algorand

NestJS service for cryptographic document notarization and immutable records on Algorand.

Impact Hash-based notarization API with NestJS — verifiable timestamps for compliance workflows. API de notarización por hash con NestJS — timestamps verificables para flujos de cumplimiento.

BlockchainNestJSAlgorand

Project breakdown

Document Notarization with Algorand

Role Backend developer Desarrollador backend

  1. Document hashing API API de hash documental

    REST endpoints accept file uploads or hashes — never stores raw document content on-chain. Endpoints REST aceptan uploads o hashes — nunca almacena contenido crudo del documento on-chain.

    • Privacy-preserving integrity proof Prueba de integridad preservando privacidad
    NestJSTypeScriptMulter
  2. Algorand blockchain adapter Adaptador blockchain Algorand

    Submits hash fingerprints to Algorand for immutable timestamps and returns transaction IDs for verification. Envía huellas hash a Algorand para timestamps inmutables y devuelve IDs de transacción para verificación.

    • Verifiable notarization without exposing file bytes Notarización verificable sin exponer bytes del archivo
    Algorand SDKSmart signatures
  3. Metadata persistence Persistencia de metadatos

    MongoDB stores notarization records, user references, and lookup indexes for audit trails. MongoDB almacena registros de notarización, referencias de usuario e índices de búsqueda para auditoría.

    • Off-chain metadata complements on-chain proof Metadatos off-chain complementan prueba on-chain
    MongoDBMongoose
  4. Verification flow Flujo de verificación

    Clients re-hash documents and compare against ledger records to prove unchanged content since notarization. Clientes re-hashean documentos y comparan contra registros del ledger para probar contenido inalterado.

    • Compliance-friendly audit workflow Flujo de auditoría apto para cumplimiento
    SHA-256Algorand explorer
Spec-Driven Development Framework

Framework for AI-assisted spec-driven delivery: templates, session management, and architecture validation.

Impact Repeatable spec templates and validation scripts — tighter human–AI loop for backend changes. Plantillas de specs y scripts de validación repetibles — ciclo humano–IA más controlado en backend.

MethodologyAIFramework

Project breakdown

Spec-Driven Development Framework

Role Creator Creador

  1. Spec templates & conventions Plantillas de specs y convenciones

    Markdown templates for features, ADRs, and change proposals — structured sections agents and humans follow. Plantillas Markdown para features, ADRs y propuestas de cambio — secciones estructuradas para agentes y humanos.

    • Consistent spec shape across repositories Forma de spec consistente entre repositorios
    MarkdownTemplates
  2. Architecture validation scripts Scripts de validación de arquitectura

    Shell/Node checks enforce folder boundaries, forbidden imports, and module dependency rules before merge. Checks shell/Node aplican límites de carpetas, imports prohibidos y reglas de dependencia antes del merge.

    • Catch architectural drift early Detectar desviación arquitectónica temprano
    ShellCI hooks
  3. AI-assisted delivery loop Ciclo de entrega asistido por IA

    Session prompts and guardrails so generated code stays aligned with approved specs and hexagonal boundaries. Prompts de sesión y guardrails para que código generado se alinee con specs aprobados y límites hexagonales.

    • Tighter human–AI collaboration on backend changes Colaboración humano–IA más controlada en backend
    AI AgentsPrompts
  4. Repository integration Integración en repositorio

    Drop-in `.spec/` or docs layout compatible with NestJS monorepos and PR review workflows. Layout `.spec/` o docs integrable con monorepos NestJS y flujos de revisión en PR.

    • Repeatable across greenfield and legacy services Repetible en servicios greenfield y legacy
    GitPR workflow
Multi-Tenant API

REST API with database-per-tenant isolation using NestJS, MongoDB, and CQRS.

Impact Connection pooling per tenant, middleware routing, and CQRS read/write separation. Pool de conexiones por tenant, middleware de enrutamiento y separación CQRS lectura/escritura.

Multi-tenantCQRSMongoDB

Project breakdown

Multi-Tenant API

Role Implementer Implementador

  1. Tenant resolution middleware Middleware de resolución de tenant

    Extracts tenant identity from JWT, subdomain, or headers and attaches context to each request. Extrae identidad de tenant desde JWT, subdominio o headers y adjunta contexto a cada request.

    • Single codebase serves many isolated customers Un solo codebase sirve muchos clientes aislados
    NestJS middlewareJWT
  2. Database-per-tenant isolation Aislamiento database-per-tenant

    Dynamic MongoDB connections pooled per tenant — no shared collections across customers. Conexiones MongoDB dinámicas con pool por tenant — sin colecciones compartidas entre clientes.

    • Strong data boundaries for SaaS compliance Límites de datos fuertes para cumplimiento SaaS
    MongoDBConnection pooling
  3. CQRS command & query paths Rutas CQRS command y query

    Separate handlers for writes vs reads — optimize each side without breaking the other. Handlers separados para escrituras vs lecturas — optimizar cada lado sin romper el otro.

    • Thin controllers delegating to use cases Controllers delgados delegando a use cases
    CQRS@nestjs/cqrs
  4. Dockerized deployment Despliegue dockerizado

    Compose-ready stack for local multi-tenant testing and repeatable environment setup. Stack listo para Compose con pruebas multitenant locales y entorno repetible.

    • Reference implementation for tenant routing patterns Implementación de referencia para routing multitenant
    DockerDocker Compose
Microservices Architecture

NestJS microservices with RabbitMQ for user and transaction management.

Impact Message-driven boundaries with RabbitMQ — reference for async inter-service communication. Límites orientados a mensajes con RabbitMQ — referencia de comunicación async entre servicios.

MicroservicesRabbitMQNestJS

Project breakdown

Microservices Architecture

Role Implementer Implementador

  1. Users microservice Microservicio de usuarios

    CRUD and auth-related user operations exposed only via RabbitMQ message patterns — no direct HTTP from peers. Operaciones CRUD y auth de usuarios expuestas solo vía patrones RabbitMQ — sin HTTP directo entre pares.

    • Own database and bounded context Base de datos y bounded context propios
    NestJSMongoDBRabbitMQ
  2. Transactions microservice Microservicio de transacciones

    Processes money movement events and maintains transaction history in a separate MongoDB database. Procesa eventos de movimiento de dinero y mantiene historial de transacciones en MongoDB separada.

    • Async coordination with users service Coordinación async con servicio de usuarios
    NestJSMongoDBRabbitMQ
  3. RabbitMQ messaging layer Capa de mensajería RabbitMQ

    Request/response and event channels decouple services — handlers registered per queue/topic pattern. Canales request/response y eventos desacoplan servicios — handlers registrados por patrón de cola/topic.

    • Reference for message-driven boundaries Referencia de límites orientados a mensajes
    RabbitMQNestJS microservices
  4. HTTP entry (companion gateway) Entrada HTTP (gateway complementario)

    Designed to pair with the API Gateway repo — external clients hit HTTP while internals stay on the bus. Diseñado para emparejar con el repo API Gateway — clientes externos usan HTTP mientras internals van al bus.

    • Clear separation between edge and domain services Separación clara entre edge y servicios de dominio
    HTTP → AMQPNestJS
Users Microservice (RabbitMQ)

Dedicated users microservice with RabbitMQ for distributed user management and auth events.

Impact Message-only API via RabbitMQ — composable building block in the NestJS microservices demo suite. API solo por mensajes vía RabbitMQ — bloque composable en el demo de microservicios NestJS.

MicroservicesRabbitMQNestJS

Project breakdown

Users Microservice (RabbitMQ)

Role Implementer Implementador

  1. User domain module Módulo de dominio de usuarios

    User entity lifecycle, validation rules, and profile operations encapsulated in a dedicated service. Ciclo de vida de entidad usuario, reglas de validación y operaciones de perfil encapsuladas en servicio dedicado.

    • Single responsibility for identity data Responsabilidad única sobre datos de identidad
    NestJSTypeScript
  2. RabbitMQ message API API de mensajes RabbitMQ

    Controllers replaced by @MessagePattern handlers — other services invoke users via queue, not HTTP. Controllers reemplazados por handlers @MessagePattern — otros servicios invocan usuarios vía cola, no HTTP.

    • Loose coupling with transaction and gateway services Acoplamiento débil con servicios de transacciones y gateway
    RabbitMQNestJS microservices
  3. MongoDB persistence Persistencia MongoDB

    Document store for user records with indexes aligned to lookup and auth query patterns. Document store para registros de usuario con índices alineados a búsquedas y auth.

    • Independent schema evolution from other services Evolución de esquema independiente de otros servicios
    MongoDBMongoose
  4. Auth event emission Emisión de eventos de auth

    Publishes user-created and credential-change events for downstream consumers (notifications, audit). Publica eventos user-created y cambio de credenciales para consumidores downstream (notificaciones, auditoría).

    • Building block in the transactions microservices demo Bloque base en el demo de microservicios de transacciones
    EventsRabbitMQ
API Gateway (RabbitMQ)

NestJS API Gateway routing HTTP requests to microservices via RabbitMQ.

Impact Thin HTTP edge translating requests to RabbitMQ RPC — hides topology from API consumers. Edge HTTP delgado traduciendo requests a RPC RabbitMQ — oculta topología a consumidores del API.

API GatewayRabbitMQNestJS

Project breakdown

API Gateway (RabbitMQ)

Role Implementer Implementador

  1. HTTP API edge Borde HTTP del API

    Single public NestJS app exposing REST routes — validates input and maps to internal message contracts. App NestJS pública única exponiendo rutas REST — valida entrada y mapea a contratos de mensajes internos.

    • One front door for external clients Una puerta de entrada para clientes externos
    NestJSExpressValidation
  2. RabbitMQ request routing Enrutamiento de requests RabbitMQ

    ClientProxy sends RPC-style messages to users and transactions queues and awaits correlated responses. ClientProxy envía mensajes estilo RPC a colas de users y transactions y espera respuestas correlacionadas.

    • Hides microservice topology from callers Oculta topología de microservicios a los callers
    RabbitMQClientProxy
  3. Auth & error mapping Auth y mapeo de errores

    JWT validation at the edge; downstream failures translated to consistent HTTP status codes. Validación JWT en el edge; fallos downstream traducidos a códigos HTTP consistentes.

    • Thin gateway — no business logic in the edge layer Gateway delgado — sin lógica de negocio en el edge
    JWTException filters
  4. Microservices ecosystem Ecosistema de microservicios

    Part of a three-repo demo with users and transactions services — reference for NestJS + RabbitMQ learning. Parte de un demo de tres repos con servicios users y transactions — referencia para aprender NestJS + RabbitMQ.

    • Composable with nestjs-microservices-transactions-rabbitmq Composable con nestjs-microservices-transactions-rabbitmq
    NestJSRabbitMQ

Need a senior backend engineer?

Available for backend architecture, microservices, and AWS delivery — from design reviews to production rollouts.

Get in touch