
Patrones de cancelación en TypeScript: domando AbortController
Por qué la mayoría del código asíncrono en TypeScript ignora por completo la cancelación, y cómo construir una cancelación componible y sin fugas con AbortController.
Etiquetas
33 artículos

Por qué la mayoría del código asíncrono en TypeScript ignora por completo la cancelación, y cómo construir una cancelación componible y sin fugas con AbortController.

Cuando una entrada de caché expira bajo alta carga, docenas de solicitudes compiten por reconstruirla al mismo tiempo. Así es como el request coalescing —deduplicar las solicitudes en curso— convierte esa estampida en una sola llamada al servicio de origen.

Deja de cargar conjuntos de resultados completos en memoria: cómo los streams de Node.js y los generadores asíncronos te permiten procesar millones de registros sin reventar el heap.

Evita condiciones de carrera en sistemas distribuidos: una guía práctica para implementar bloqueos distribuidos con Redis y los bloqueos consultivos de PostgreSQL en Node.js.

Sustituye el EventEmitter de tipado débil de Node por una alternativa genérica y tipada que detecta errores en los nombres de eventos y payloads incorrectos en tiempo de compilación.

Un Promise.all sin límites es un OOM silencioso: así se construyen semáforos, colas con throttling y backpressure de streams en tus aplicaciones Node.js.

Usa AsyncLocalStorage para propagar contexto con ámbito de petición — IDs de traza, sesiones de usuario, datos del tenant — a través de pilas de llamadas asíncronas sin pasar valores por cada firma de función.

La mayoría de los servicios Node.js descartan silenciosamente las solicitudes en curso en cada despliegue; aquí se explica cómo manejar SIGTERM correctamente, drenar las conexiones y salir limpiamente en Kubernetes.

Deja de atornillar middleware a los frameworks y empieza a construir primitivas de pipeline componibles y con tipado seguro que puedes probar de forma aislada y entender de un vistazo.

Aprende a usar los worker threads de Node.js para manejar tareas intensivas de CPU sin bloquear el event loop, con patrones de pool de hilos y mensajería con tipado seguro.

Implementa structured logging en servicios Node.js para producir entradas de log analizables por máquina, con IDs de correlación, niveles de severidad coherentes y propagación de contexto que agilizan y hacen más fiable la depuración de incidentes en producción.

Un tutorial paso a paso para construir un sistema escalable de notificaciones en tiempo real usando WebSockets, Redis pub/sub para la difusión entre múltiples servidores y almacenamiento persistente de notificaciones con seguimiento de lectura.

Un tutorial paso a paso para implementar búsqueda de texto completo con Elasticsearch que cubre diseño de índices, analizadores, coincidencia difusa, búsqueda por facetas y patrones de optimización de rendimiento.

Una guía para identificar tareas de desarrollo repetitivas y crear herramientas CLI personalizadas que las automaticen, con análisis de tareas, patrones de diseño de scripts y los rendimientos compuestos de la automatización de flujos de trabajo.

Guía práctica para implementar suscripciones GraphQL en funcionalidades en tiempo real, cubriendo la configuración WebSocket con Apollo Server, resolvers de suscripción, integración del cliente y patrones de escalado en producción.

Un tutorial paso a paso para construir un dashboard con actualización en vivo usando Server-Sent Events, que cubre el protocolo SSE, la implementación del servidor en Node.js y la integración con un cliente React con manejo de reconexión.

Un análisis en profundidad del pooling de conexiones de bases de datos para servicios Node.js, con dimensionamiento del pool, health checks, patrones de failover y las configuraciones erróneas más comunes que causan caídas en producción.

Crea una herramienta CLI de calidad de producción con Node.js cubriendo el análisis de argumentos, prompts interactivos, indicadores de progreso, manejo de errores y distribución a través de npm, con patrones que hacen que las herramientas de línea de comandos se sientan pulidas y profesionales.

Configura y optimiza los pools de conexiones a bases de datos para aplicaciones Node.js de alto rendimiento con ejemplos prácticos sobre dimensionamiento del pool, health checks, gestión del ciclo de vida de las conexiones y errores comunes que provocan el agotamiento del pool.

Crea scripts de automatización prácticos que eliminen la fricción diaria del desarrollo, incluyendo scaffolding de proyectos, seeding de bases de datos, análisis de logs y verificación de despliegues con Node.js y comandos de shell.

Tutorial paso a paso para construir una herramienta CLI profesional en Node.js con análisis de argumentos, prompts interactivos, salida con colores, indicadores de progreso, archivos de configuración y publicación multiplataforma en npm.

Implementa patrones de monitoreo de seguridad en tiempo de ejecución que detectan y bloquean ataques desde dentro de tu aplicación Node.js, cubriendo la detección de inyección SQL, la prevención de path traversal y las alertas de comportamiento anómalo.

Construye paso a paso una cola de tareas lista para producción con Node.js y Redis, cubriendo entrega fiable, reintentos, colas de mensajes muertos y control de concurrencia.

Un tutorial paso a paso para construir un servidor GraphQL con TypeScript, que cubre el diseño del esquema, resolvers, dataloaders para prevenir el problema N+1, autenticación, manejo de errores y patrones de despliegue.

Una guía práctica para instrumentar aplicaciones Node.js con OpenTelemetry — trazas, métricas y logs mediante auto-instrumentación, spans personalizados, propagación de contexto y configuración de exportadores.

Un tutorial paso a paso para construir un microservicio orientado a eventos usando Node.js, RabbitMQ y TypeScript, que cubre la publicación y el consumo de eventos, las colas de mensajes muertos y el procesamiento idempotente.

Un tutorial paso a paso para construir un servicio acortador de URLs con generación de códigos cortos, manejo de redirecciones, analítica de clics y limitación de peticiones, cubriendo el diseño completo del sistema desde el esquema de la base de datos hasta la API.

Un tutorial paso a paso para construir un dashboard con actualización en vivo usando WebSockets: configuración del servidor, gestión de conexiones del cliente, streaming de datos, lógica de reconexión y consideraciones de escalado.

Cómo implementar registro estructurado para depurar más rápido en producción — formatos de log en JSON, propagación de contexto, niveles de log, enmascaramiento de datos sensibles e integración con herramientas de agregación de logs.

Una guía práctica para implementar suscripciones de GraphQL con actualizaciones en tiempo real — transporte WebSocket, resolvers de suscripción, filtrado y consideraciones de escalado.

Una guía completa para crear, probar y distribuir una herramienta CLI de Node.js: análisis de argumentos, prompts interactivos, formato de salida y publicación en npm.

Técnicas para diagnosticar fugas de memoria, asignación excesiva y muertes por OOM en producción, cubriendo heap snapshots, herramientas de profiling y patrones comunes de fuga.

Patrones para escribir integration tests fiables, rápidos y que detectan errores reales — configuración de bases de datos, pruebas de API y cómo evitar el síndrome de los tests inestables.