Le decís a tu gerente de producto: “Necesitamos dos sprints para refactorizar el módulo de facturación, tiene mucha deuda técnica”. Y la respuesta es siempre la misma: “¿Y qué gana el negocio con eso? Tenemos cuatro funcionalidades comprometidas con clientes para este trimestre”. La conversación termina con la refactorización al fondo del backlog, otra vez.…
Dead Letter Queue
Tu servicio de facturación consume eventos OrderCreated de una cola. Todo marcha bien hasta que llega un mensaje con un formato que nadie esperaba: un campo faltante, un JSON mal formado, un dato que rompe una validación. El consumidor lanza una excepción, el broker lo vuelve a entregar, falla de nuevo, y así indefinidamente. Ese…
Comunicación Asíncrona
Recibís este mensaje en Slack un martes a las 9:03am: “Hola”. Nada más. Sabés que la persona quiere algo, pero no qué. Le respondés “Hola, ¿qué necesitás?” y esperás. Veinte minutos después llega: “¿Podés mirar el tema del servicio de pagos?”. Nueva pregunta tuya: “¿Qué tema?”. Pasa otra media hora. Cuando por fin entendés que…
Bloqueo optimista/pesimista
Es Black Friday. Queda una sola unidad de un producto en promoción y dos clientes hacen clic en “Comprar” con una diferencia de milisegundos. Tu servicio de inventario hace lo que parece lo más lógico: lee el stock (1), verifica que sea mayor a cero, y escribe el stock nuevo (0). Los dos clientes leyeron…
Post-mortems sin culpa
Son las 2:14am. Un despliegue rompió el proceso de cobros y durante 47 minutos ningún cliente pudo pagar. El incidente ya se resolvió, el servicio está de vuelta, y a la mañana siguiente el equipo se junta a “revisar qué pasó”. La primera pregunta que se escucha en la sala es: “¿Quién hizo el deploy?”…
Cadena de Responsabilidad
Te piden agregar validaciones a la creación de pedidos de tu e-commerce: primero verificar que haya stock, después revisar que no sea un posible fraude, y finalmente confirmar que el cliente tiene crédito disponible. Empezás con tres if. Dos semanas después, producto pide una validación más para clientes corporativos. Un mes después, otra para pedidos…
Desacuerdos técnicos
Dos ingenieros senior, mismo nivel, sin jerarquía entre ellos. Uno quiere resolver el problema con un microservicio nuevo. El otro insiste en que un módulo dentro del monolito actual es suficiente y más simple. Ninguno está técnicamente “equivocado” — son dos trade-offs (intercambios) válidos con distintas prioridades. La conversación lleva cuarenta minutos, el tono empezó…
Patrón CQRS
En el post de Event Sourcing vs CRUD mencionamos a CQRS como el complemento natural, sin desarrollarlo. Le toca su propio espacio, porque resuelve un problema muy común incluso en sistemas que no usan Event Sourcing en absoluto. Tenés un catálogo de productos. Las escrituras son poco frecuentes: un producto se actualiza una vez al…
Mentoría Técnica
Un desarrollador junior de tu equipo está trabado con un bug hace dos horas. Se acerca a preguntarte. Tenés dos caminos: abrir su editor, arreglarlo vos en cinco minutos, y seguir con lo tuyo. O sentarte a su lado, hacer preguntas, y dejar que sea él quien llegue a la solución en veinte minutos. El…
Feature Flag
Tu equipo pasó tres semanas construyendo un nuevo motor de búsqueda para el catálogo. El viernes está listo. ¿Lo despliegan y esperan que funcione perfecto para todos los usuarios al mismo tiempo, con el riesgo de que un bug afecte a toda la base de usuarios de un solo golpe? ¿O esperan al lunes con…