Caso de referencia · App de mensajería

Así se ve un mensaje viajando por una arquitectura serverless real.

Esta es la arquitectura típica de una app de chat sobre AWS: CloudFront en el edge, API Gateway WebSocket para realtime, ECS Fargate corriendo microservicios en Go y TypeScript, Lambda Python para procesar media, DynamoDB para mensajes, Aurora para usuarios, Redis para presence, SNS para push. Mirá cómo el mensaje de Alice viaja paso por paso hasta llegar a Bob.

Loop automático · Arrastrá para rotar · Hover sobre los tiles

Los 8 pasos · de Alice a Bob

Cada paso del loop representa una llamada real entre servicios. Esto es lo que pasa cuando alguien aprieta “enviar”.

  1. 01

    Mobile → CloudFront

    El cliente envía el mensaje vía WebSocket. CloudFront termina TLS y enruta al edge más cercano.

  2. 02

    CloudFront → API Gateway

    CloudFront enruta a la API Gateway WebSocket, que mantiene el connectionId persistente.

  3. 03

    API Gateway → Chat Service

    API Gateway dispatcha el evento al Chat Service (Go) corriendo en ECS Fargate.

  4. 04

    Chat ↔ Aurora

    Verifica que Bob existe y que la conversación entre Alice y Bob es válida.

  5. 05

    Chat → DynamoDB

    Persiste el mensaje en DynamoDB con TTL y particionado por conversation_id.

  6. 06

    Chat → Redis

    Actualiza presence y last-seen de Alice en ElastiCache Redis. TTL automático.

  7. 07

    Chat → SNS

    Publica al SNS push topic. La cola SQS de async tasks también recibe el evento.

  8. 08

    SNS → Mobile (Bob)

    Lambda Push fanout envía la notificación al device de Bob vía APNs / FCM.

Esto no es decorativo. Es la arquitectura real que aplicamos cuando un cliente nos pide construir una plataforma de comunicación, marketplace con chat o app de soporte. Cambian los servicios — el método es el mismo.

01 · Lenguajes

Cinco lenguajes que cubren cualquier sistema serio.

No somos puristas de un único lenguaje. Elegimos el que mejor encaja con el problema, el equipo del cliente y el horizonte operativo. Backend de alto rendimiento en Go, sistemas empresariales sobre .NET o Java, productos rápidos en Node + TypeScript.

  • .NET Core

    Plataforma backend empresarial — APIs, servicios y workers para sistemas regulados o de gran escala.

  • Java

    JVM para backend empresarial, Spring Boot, sistemas financieros y procesamiento batch de alto volumen.

  • Go

    Servicios con concurrencia nativa, baja latencia y huella mínima — ideal para microservicios y CLIs operativas.

  • TypeScript

    Type safety end-to-end en producto web — Next.js, Node, scripts de operación.

  • JavaScript

    Cuando el caso lo justifica — browser legacy, prototipos rápidos, edge functions.

02 · Bases de datos

NoSQL cuando importa, SQL cuando se necesita.

MongoDB y DynamoDB para escala flexible y cargas no relacionales. PostgreSQL como columna vertebral en producto a medida. Redis para caching y colas. Diseñamos el storage layer pensando en costos y consistencia, no en hype.

  • MongoDB

    Documento NoSQL flexible para producto en evolución, catálogos heterogéneos y eventos.

  • DynamoDB

    NoSQL serverless de AWS — escala automática, latencia predecible para sistemas de alta concurrencia.

  • PostgreSQL

    Relacional estándar para data transaccional, JSON cuando aplica y extensiones (pgvector, postgis).

  • Redis

    Cache, sesiones, rate limiting y colas livianas — el caballo de batalla operativo.

03 · Mensajería & realtime

Kafka, RabbitMQ, Socket.IO — el sistema nervioso de tu producto.

Apache Kafka para event streaming a escala. RabbitMQ para colas y workflows asíncronos. Socket.IO y WebSockets nativos para chat, dashboards en vivo y colaboración multi-usuario. Diseñamos arquitecturas event-driven cuando hay caso real, no por moda.

  • Apache Kafka

    Event streaming a escala con replay, particionamiento y retención durable.

  • RabbitMQ

    Colas y workflows asíncronos con routing flexible, dead-letter y reintentos predecibles.

  • Socket.IO

    Realtime confiable con fallback a polling — chat, notificaciones live, dashboards colaborativos.

  • WebSockets

    Realtime nativo cuando se necesita protocolo crudo y control fino del transport.

04 · Cloud · AWS

Infraestructura sobre AWS, observable y con costos predecibles.

Desplegamos sobre AWS con foco en costo, observabilidad y operación. ECS y Lambda para cómputo, RDS y DynamoDB para data, S3 + CloudFront para distribución, EventBridge y SQS para integración. Infra como código con Terraform o CDK.

  • AWS Lambda

    Cómputo serverless event-driven — Node, Python, Go. Costo cero cuando no se ejecuta.

  • ECS Fargate

    Contenedores administrados sin gestionar EC2. Ideal para servicios long-running con autoscaling.

  • RDS

    PostgreSQL y MySQL administrados con backups, réplicas y multi-AZ.

  • S3 + CloudFront

    Storage de objetos + CDN global — assets, builds, distribución de contenido.

  • EventBridge / SQS

    Bus de eventos serverless y colas administradas para integración entre servicios y SaaS.

05 · Arquitecturas & patrones

Monolito modular o microservicios — según el caso, no según el folklore.

Empezamos con monolito modular cuando el equipo es chico y el dominio aún se está descubriendo. Desacoplamos a microservicios cuando hay carga real, autonomía de equipos o requerimientos de despliegue independiente. DDD, hexagonal, CQRS, Saga — usamos los patrones que aplican, sin sobreingeniería.

  • Monolito modular

    Monolito bien diseñado con módulos desacoplados — más rápido de operar y evolucionar al inicio.

  • Microservicios

    Decomposición por dominio cuando hay autonomía de equipo y necesidad de despliegue independiente.

  • Event-driven

    Comunicación asíncrona con eventos como source of truth — Kafka, EventBridge, RabbitMQ.

  • DDD

    Domain-Driven Design para alinear modelo de software con el modelo de negocio real.

  • Hexagonal

    Arquitectura por puertos y adaptadores — testabilidad alta, dependencias hacia adentro.

06 · Filosofía

Tecnología que dura cinco años, no cinco meses.

/ Stack

Boring & battle-tested

PostgreSQL, Node, .NET, Kafka, AWS. No usamos lo nuevo solo porque es nuevo. Usamos lo que sostiene producción cinco años seguidos.

/ Arquitectura

Monolito modular primero

Empezamos simple. Desacoplamos a microservicios cuando hay carga real o autonomía de equipos que lo justifique. Nunca por “buenas prácticas” abstractas.

/ Operación

Observable desde día 0

Logs estructurados, métricas, traces y alertas configuradas antes del primer deploy. Lo que no se mide, no se opera.

Próximo paso

¿Tu stack ideal o el que ya tienes? Lo discutimos sin juzgar.

Si tenés un sistema legado o vas a empezar de cero, sentate con nosotros 30 minutos sin compromiso. Salís con una recomendación honesta — quédese o no con nosotros.