Blog
Casos técnicos, decisiones de arquitectura y migraciones legacy.
SQL Server Hekaton: OLTP en memoria sin perder ACID
Cómo son las tablas de In-Memory OLTP en SQL Server, comparadas con Redis, y por qué para un equipo .NET suelen ser la opción más simple para el mismo problema.
Despliegues blue-green: cambiar de versión con una ruta de regreso
Dos entornos permiten preparar una versión nueva y cambiar el tráfico cuando está lista. La reversión depende también de la compatibilidad de los datos.
MCP y API: una interfaz común para usar herramientas
Las API ofrecen funcionalidad. MCP estandariza cómo una aplicación de IA descubre y utiliza capacidades expuestas por servidores.
Rate limiting: de la ventana fija al token bucket distribuido
Limitar tráfico exige definir tanto la tasa permitida como las ráfagas tolerables, y mantener coherencia cuando hay varias instancias.
RAG: responder con documentos que el modelo no aprendió
La generación aumentada por recuperación incorpora información relevante al contexto de una consulta sin exigir que el modelo memorice toda la biblioteca.
Cinco algoritmos para entender el aprendizaje supervisado
Regresión lineal, regresión logística, árboles, SVM y k-NN representan cinco maneras de convertir ejemplos etiquetados en predicciones.
CAPTCHA: del rompecabezas a la evaluación de riesgo
Un desafío visible es solo una posible señal. La defensa contra automatización combina observaciones y decisiones proporcionales al riesgo.
Pagos sin contacto: del acercamiento a la autorización
NFC transporta un intercambio local; el procesador, la red de tarjetas y el emisor completan la decisión. Autorizar y liquidar son etapas diferentes.
TOTP: por qué el autenticador genera códigos sin Internet
El teléfono y el servidor calculan el mismo código a partir de un secreto compartido y una ventana de tiempo; no necesitan intercambiar cada código generado.
Escalar una base de datos según el cuello de botella
Índices, caché, réplicas, colas, particiones y sharding atienden problemas diferentes. Elegirlos exige medir qué trabajo está saturando el sistema.
Caché de base de datos: frescura, avalanchas y claves calientes
Consultar Redis antes de la base de datos es el inicio. Un diseño completo debe controlar datos obsoletos, recargas concurrentes y concentración de lecturas.
gRPC: contratos tipados y transporte eficiente entre servicios
gRPC combina llamadas remotas, contratos de servicio y un transporte basado en HTTP/2. Entender cada capa evita comparaciones engañosas con las API HTTP.
CDN: acercar el contenido al lector
Una red de distribución reduce viajes al origen mediante cachés desplegadas en diferentes puntos de la red.
Balanceo de carga: repartir tráfico y tolerar fallos
Agregar servidores ayuda cuando el tráfico llega a instancias disponibles y el estado permite atender desde cualquiera de ellas.
Proxy, balanceador y API gateway: responsabilidades distintas
Tres intermediarios responden preguntas distintas: quién representa a quién, qué instancia recibe tráfico y qué políticas gobiernan una API.
Rust: seguridad de memoria con ownership y préstamos
Rust traslada al compilador buena parte de la comprobación del uso de memoria, manteniendo control de los recursos y compilación a código nativo.
Git: del archivo editado al historial compartido
Comprender el directorio de trabajo, el área de preparación y los commits permite colaborar sin perder la historia del proyecto.