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…

Estimaciones de Software

“¿Cuánto te toma esa tarea?” “Como tres días.” Terminó tomando dos semanas. Si esta escena te suena familiar, no estás solo — y probablemente no es porque seas mal estimando. Estimar software mal no es un defecto de carácter, es casi una constante universal de la profesión. ¿Por qué siempre nos equivocamos? El fenómeno tiene…

Idempotency Keys

Un cliente está en el checkout de tu tienda. Hace clic en “Pagar”. La conexión tarda un poco, no ve respuesta inmediata, y hace clic de nuevo. O peor: su app reintenta automáticamente tras un timeout, sin que el usuario haga nada. Resultado: dos cargos idénticos en su tarjeta por la misma orden. Ya mencionamos…

Onboarding

Primer día. La persona nueva tiene sus credenciales… a medias. Nadie le explicó bien qué hace el equipo más allá del título del puesto. Le asignan una tarea “fácil para empezar” que en realidad requiere entender seis servicios distintos. A la hora de almuerzo, come sola porque nadie pensó en organizar algo. Para el viernes,…