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
Cada paso del loop representa una llamada real entre servicios. Esto es lo que pasa cuando alguien aprieta “enviar”.
- 01
Mobile → CloudFront
El cliente envía el mensaje vía WebSocket. CloudFront termina TLS y enruta al edge más cercano.
- 02
CloudFront → API Gateway
CloudFront enruta a la API Gateway WebSocket, que mantiene el connectionId persistente.
- 03
API Gateway → Chat Service
API Gateway dispatcha el evento al Chat Service (Go) corriendo en ECS Fargate.
- 04
Chat ↔ Aurora
Verifica que Bob existe y que la conversación entre Alice y Bob es válida.
- 05
Chat → DynamoDB
Persiste el mensaje en DynamoDB con TTL y particionado por conversation_id.
- 06
Chat → Redis
Actualiza presence y last-seen de Alice en ElastiCache Redis. TTL automático.
- 07
Chat → SNS
Publica al SNS push topic. La cola SQS de async tasks también recibe el evento.
- 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.
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.
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.
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.
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.
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.
Tecnología que dura cinco años, no cinco meses.
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.
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.
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.
¿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.