Backend y servicios
11 minutos de lectura
- Backend y servicios- Frameworks web y diseño de APIs- Tipos y arquitecturas web- REST / RESTful
- HATEOAS
- GraphQL
- RPC binario (gRPC / Thrift / Avro)
- WebSockets
- Long Polling
- Server-Sent Events (SSE)
- WebTransport
- WebRTC orientado a data channels
- SOA (Service-Oriented Architecture)
- SOAP / WSDL
- API Gateway y BFF (Backend for Frontend)
 
- Comunicación bidireccional y tiempo real- Canales WebSocket persistentes
- Server-Sent Events para notificaciones unidireccionales
- Long polling compatible con entornos legacy
- Streaming gRPC bidireccional
- Difusión en tiempo real mediante pub/sub
- Canales / rooms compartidos entre clientes
- Estado de presencia y “usuario en línea”
- Sincronización colaborativa en vivo (co-edición)
- Entrega parcial y progresiva de resultados largos
- Priorización de mensajes críticos vs mensajes secundarios
 
- Middleware, interceptores y filtros- Cadena de middlewares componibles
- Interceptores de request / response
- Validación previa al handler
- Transformación y normalización de payload
- Logging estructurado y trazas
- Métricas de latencia y tiempos de respuesta
- Autenticación centralizada
- Control de acceso a nivel de ruta
- Rate limiting y cuotas por endpoint
- Gestión de CORS y headers de seguridad
 
- Validación y serialización de datos de entrada y salida- Esquemas de validación consistentes
- Sanitización y normalización de entrada
- Tipado fuerte en DTOs / contratos formales
- Serialización estructurada (JSON / XML / YAML)
- Serialización binaria eficiente
- Normalización de fechas, números y zonas horarias
- Validación de tamaños, límites y formatos
- Respuestas de error estandarizadas
- Versionado de esquemas con retrocompatibilidad
- Evolución del contrato sin romper clientes existentes
 
- Autenticación y autorización a nivel de servicio- Autenticación básica y API Keys
- Tokens firmados (JWT)
- OAuth2 / OpenID Connect
- SSO corporativo y federación de identidad (SAML / IdP)
- Gestión de identidades delegadas y externas (proveedores de identidad)
- Passkeys / WebAuthn
- MFA (SMS, TOTP/HOTP, push, biométrico, hardware tokens)
- Sesiones seguras y cookies con protección
- Rotación, expiración y revocación de credenciales
- Identidad de servicio a servicio (workload identity / service accounts)
 
- Autorización basada en roles y atributos- RBAC (Role-Based Access Control)
- ABAC (Attribute-Based Access Control)
- PBAC / autorización basada en políticas centralizadas
- Scopes y claims en tokens
- Lógicas de permisos jerárquicos y delegados
- Controles por acción, recurso y contexto
- Evaluación de políticas en runtime
- Auditoría de decisiones de autorización
- Separación de funciones (SoD)
- Acceso condicional basado en riesgo / postura del cliente
 
- Limitación de tasa, paginación y control de abuso- Rate limiting global
- Rate limiting por IP / usuario / API key
- Cotas (quotas) diarias, horarias o por plan
- Throttling y backpressure
- Paginación offset/limit
- Paginación basada en cursor / “a partir de aquí”
- Detección de patrones abusivos (scraping / bursts anómalos)
- Bloqueo temporal selectivo / cooldown
- Detección de automatización/bots y mitigación
- Honeypots / endpoints señuelo para identificar abuso
 
- Versionado de APIs- Versionado explícito en la ruta (v1, v2…)
- Versionado mediante headers de negociación
- Versionado semántico de contrato
- Compatibilidad retroactiva (backward compatibility)
- Compatibilidad hacia adelante (forward compatibility)
- Deprecación gradual y retirada planificada
- Coexistencia de versiones en paralelo
- Canales beta / vista previa controlada
- Pruebas automáticas de compatibilidad de esquema
- Gestión del ciclo de vida público / interno / legacy
 
- Especificaciones y documentación de APIs- OpenAPI / Swagger
- IDL / protobuf para gRPC
- Esquemas GraphQL documentados
- Documentación generada automáticamente
- Ejemplos de requests / responses y códigos de error
- Definición formal de contratos de error
- SDKs y clientes generados desde el contrato
- Testing de contrato (consumer-driven)
- Mock servers a partir de la especificación
- Validación de contrato en CI/CD
 
 
- Tipos y arquitecturas web
- Bases de datos y persistencia- Lenguajes de consulta estructurados- SQL declarativo
- DDL / DML / DQL / DCL
- Joins y combinaciones complejas
- Subconsultas y CTEs
- Agregaciones y ventanas analíticas
- Planificación y optimización por el planner
- Index hints y tuning de consultas
- Planes de ejecución y análisis de costos
- Sentencias preparadas y binding de parámetros
- Prevención de inyección y consultas seguras
 
- Modelado relacional- Definición de tablas y claves primarias
- Claves foráneas y restricciones referenciales
- Relaciones 1:1, 1:N, N:M
- Integridad referencial estricta
- Restricciones CHECK y dominios de valor
- Modelos altamente normalizados
- Desnormalización estratégica para lectura rápida
- Tablas pivote y tablas puente
- Trazabilidad de cambios (audit columns, timestamps)
- Versionado de registros (soft history / temporal tables)
 
- Normalización y desnormalización- Formas normales (1NF, 2NF, 3NF, BCNF)
- Eliminación de redundancia no controlada
- Balance entre consistencia y performance
- Campos derivados precalculados
- Tablas resumen / agregadas materializadas
- Tablas anchas optimizadas para lectura
- Tablas altamente factorizadas optimizadas para escritura
- Estrategias de duplicación de datos por servicio
- Mantenimiento de sincronización entre copias duplicadas
- Impacto en caché y latencia de lectura
 
- Transacciones, atomicidad y aislamiento- Propiedades ACID
- Commit y rollback
- Niveles de aislamiento configurables
- Lecturas sucias, no repetibles y phantom reads
- Bloqueos pesimistas y bloqueos por fila
- MVCC (control multiversión)
- Detección y resolución de deadlocks
- Timeouts de transacción y reintentos
- Transacciones distribuidas / 2PC
- Idempotencia de operaciones críticas
 
- Índices, vistas y disparadores- Índices B-Tree
- Índices hash y GIN/GiST
- Índices compuestos y parciales
- Índices funcionales / expresiones indexadas
- Vistas lógicas
- Vistas materializadas y refresco incremental
- Disparadores BEFORE / AFTER
- Auditoría, logging y enforcement en disparadores
- Índices específicos para búsquedas de texto
- Mantenimiento y health check de índices
 
- Procedimientos almacenados y lógica en base de datos- Funciones definidas por usuario (UDF)
- Procedimientos con estado transaccional
- Validación de reglas de negocio en capa SQL
- Enriquecimiento de datos al insertar / actualizar
- Implementación de colas simples dentro de la DB
- Control de acceso granular en funciones
- Encapsulación de lógica crítica centralizada
- Versionado y despliegue de cambios en SP/UDF
- Optimización y caching de resultados de funciones
- Gobernanza y revisión de seguridad de lógica en DB
 
- Mapeo objeto-relacional y capas de acceso a datos- ORMs
- Repositorios / DAOs
- Query builders tipados
- Problema N+1 y técnicas de batching
- Caché de primer nivel (por sesión)
- Caché de segundo nivel (compartida)
- Unidad de trabajo (Unit of Work)
- Mapeo de herencia y políformas complejas
- Migración gradual fuera del ORM cuando es cuello de botella
- Pruebas de acceso a datos con fixtures realistas
 
- Migraciones estructuradas y controladas de esquema- Migraciones versionadas incrementales
- Migraciones forward / backward seguras
- Aplicación transaccional de migraciones
- Migraciones online sin downtime
- Renombrar, dividir y fusionar tablas grandes
- Auditoría y registro de cambios de esquema
- Semillas / datos iniciales consistentes
- Feature flags ligados a cambios de esquema
- Validación de migraciones en staging
- Rollback automatizado ante fallo en producción
 
- Pools de conexiones y eficiencia de acceso concurrente- Pooling y reutilización de conexiones
- Límite máximo de conexiones simultáneas
- Reuso vs reconexión agresiva
- Timeouts y keepalive
- Balanceo hacia réplicas de solo lectura
- Encolamiento de consultas en saturación
- Priorización de consultas críticas
- Circuit breakers hacia la base de datos
- Pooling por servicio / tenant
- Telemetría de uso del pool y tuning dinámico
 
- Almacenamiento no relacional- Clave-valor
- Documentos
- Columnar ancho / wide-column
- Grafos
- Series de tiempo (time-series)
- TTL por registro y expiración automática
- Consistencia eventual configurable
- Sharding horizontal nativo
- Índices secundarios y consultas ad-hoc
- Políticas de replicación específicas por colección / bucket
 
- Motores de búsqueda y consulta de texto libre- Indexación full-text
- Ranking de relevancia configurable
- Tokenización, stemming y normalización lingüística
- Búsqueda difusa y tolerancia a errores tipográficos
- Facetas, filtros y agregaciones por campo
- Índices invertidos distribuidos
- Búsqueda distribuida a escala horizontal
- Enriquecimiento / anotación de documentos indexados
- Destacado de coincidencias (highlighting)
- Control de sinónimos y relevancia semántica
 
- Almacenamiento analítico y sistemas orientados a consultas de negocio- Data warehouses columnares
- Diferencia OLTP vs OLAP
- Cubos analíticos y agregados precomputados
- Tablas particionadas por rango temporal
- Data lakes y lakehouses
- ETL / ELT y pipelines de ingesta
- Tablas de hechos y tablas de dimensiones
- Catálogo de datos y linaje
- Materialización incremental de métricas de negocio
- Governance de acceso a datos analíticos
 
- Replicación, particionamiento y alta disponibilidad- Réplicas de solo lectura y escalamiento de lectura
- Sharding horizontal (por rango / hash / geografía)
- Failover automático de primario
- Geo-replicación multi-región
- Balanceo de carga entre nodos
- Consistencia configurable por operación (quórum)
- Recuperación ante caída de nodo / rack / AZ
- Promoción controlada de réplicas a primario
- Sincronización incremental basada en logs
- Monitoreo de salud y latencia entre réplicas
 
- Integridad referencial y consistencia eventual- Integridad fuerte en bases relacionales
- Soft deletes y consistencia lógica
- Reconciliación asíncrona entre servicios
- Reintentos idempotentes en escritura
- Eventos de compensación para revertir cambios
- Garantías de lectura propia (read-your-writes)
- Proyecciones materializadas
- Consistencia eventual tolerante a particiones
- Conflictos de escritura y resolución semántica
- Auditoría y trazabilidad de mutaciones de datos
 
 
- Lenguajes de consulta estructurados
- Integraciones y comunicación entre servicios- Mensajería asíncrona y colas de mensajes- Colas persistentes y durables
- Topics y subscripciones múltiples
- Métricas de lag y throughput
- Garantías de entrega (at-most-once / at-least-once / exactly-once)
- Retries diferidos con backoff
- Dead-letter queues (DLQ)
- Backpressure y control de velocidad de consumo
- Ordenamiento por partición / clave
- Priorización de mensajes críticos
- Aislamiento de colas por servicio / tenant
 
- RPC eficiente y contratos binarios- gRPC y streaming bidireccional
- IDL y contratos fuertemente tipados
- Serialización binaria compacta (protobuf/avro)
- Timeouts y cancelación propagada extremo a extremo
- Retries con backoff exponencial y jitter
- Propagación de contexto (traza, auth)
- mTLS entre servicios
- Control de versión del contrato RPC
- Compatibilidad backward/forward en campos opcionales
- Validación automática del contrato en CI
 
- Webhooks, notificaciones y callbacks externos- Entrega HTTP saliente firmada
- Reintentos con política exponencial
- Detección y supresión de duplicados
- Auditoría y tracking de entregas
- Suspensión temporal frente a receptor caído
- Replay manual / reenvío seguro
- Seguridad de endpoints receptores (secret, IP allowlist)
- Idempotencia en callbacks
- Versionado del payload externo
- Contratos legales / SLA con terceros
 
- Integración con servicios de terceros- Consumo de APIs externas
- OAuth2 / tokens delegados
- Limitación de tasa impuesta por el proveedor
- Uso de entornos sandbox / staging del tercero
- Versionado y migración de API del proveedor
- Caching defensivo de respuestas externas
- Circuit breakers ante degradación externa
- Observabilidad específica por integración externa
- Cumplimiento de términos de uso / auditorías
- Estrategias de fallback si el tercero falla
 
- Estrategias de reintento y colas de mensajes muertos- Retries con backoff progresivo
- Retries con jitter aleatorio
- Límite máximo de reintentos por mensaje
- DLQ (Dead-letter queue) para mensajes problemáticos
- Reprocesamiento manual y herramientas operativas
- Correlación de mensajes e identificadores únicos
- Idempotencia y deduplicación en reintentos
- Aislamiento de tráfico tóxico
- Alertas automáticas al acumularse mensajes fallidos
- Priorización de reprocesamiento según criticidad
 
- Serialización binaria y formatos compactos- Protocol Buffers
- Avro
- FlatBuffers / Cap’n Proto
- Campos opcionales y repetidos
- Evolución de esquema sin romper compatibilidad
- Compresión y fragmentación de mensajes
- Versionado explícito del mensaje
- Validación de esquema en runtime
- Validación de esquema en pipeline CI/CD
- Compatibilidad multiplataforma / multilenguaje
 
- Arquitecturas basadas en eventos y event sourcing- Eventos inmutables como fuente de verdad
- Log append-only distribuido
- Proyecciones materializadas derivadas del log
- Reconstrucción de estado a partir de eventos
- Reproducción de eventos históricos (replay)
- Versionamiento de tipos de evento
- Consistencia eventual mediante propagación de eventos
- Integración con CQRS
- Orden total vs orden por partición
- Garantías de entrega y deduplicación de eventos
 
- Modelos de publicación/suscripción- Pub/Sub desacoplado productor-consumidor
- Filtros por tópico / etiqueta / patrón
- Broadcast selectivo
- Subscripciones durables con retención histórica
- Fan-out masivo a múltiples consumidores
- Balanceo de carga entre consumidores de un mismo tópico
- Multiplexación de eventos en canales lógicos
- Reintentos y confirmación explícita de consumo
- Aislamiento por prioridad o criticidad
- Versionado de payloads en tópicos compartidos
 
- Streaming de datos en tiempo real y captura de cambios- Streaming continuo de registros
- Procesamiento de flujo (stream processing)
- Ventanas temporales y agregaciones en vivo
- CDC (Change Data Capture) desde la base de datos
- Replicación basada en logs de transacciones
- Suscripciones reactivas a cambios de estado
- Alertas en near real-time
- Priorización de eventos críticos
- Backpressure en pipelines de streaming
- Persistencia y replay de streams históricos
 
 
- Mensajería asíncrona y colas de mensajes
- Arquitecturas distribuidas y microservicios- Patrones de microservicios- BFF (Backend For Frontend)
- API Gateway centralizado
- Servicios alineados a dominios de negocio
- Base de datos independiente por servicio
- Servicios dirigidos por eventos
- CQRS (separación lectura / escritura)
- Sagas distribuidas para consistencia eventual
- Capa anti-corrupción entre dominios
- Funciones serverless como piezas de dominio
- Servicios stateless vs servicios stateful especializados
 
- Descubrimiento de servicios y enrutamiento- Registro dinámico de instancias activas
- Health checks y heartbeats
- Descubrimiento basado en DNS
- Descubrimiento basado en sidecar / service mesh
- Balanceo interno L4/L7 según políticas
- Enrutamiento basado en versión / etiqueta
- Rutas canario / blue-green controladas
- Circuit breaking y failover automático
- Traffic shadowing / mirroring
- Segmentación de tráfico por tenant / cliente
 
- Versionamiento y despliegue incremental- Versiones paralelas del mismo servicio
- Despliegues canario
- Blue-green deployment
- Feature flags y toggles de capacidad
- Rollback rápido y seguro
- Compatibilidad backward en contratos
- Shadow traffic para validar nuevas versiones
- Deploy gradual por región / AZ
- Deploy continuo (CI/CD) con puertas de calidad
- Métricas de salud antes de promover a “estable”
 
- Fault tolerance y resiliencia operativa- Circuit breakers por dependencia
- Retries con límites y backoff
- Bulkhead isolation (aislar recursos críticos)
- Timeouts agresivos y cancelación temprana
- Degradación parcial de funcionalidades (graceful degradation)
- Réplicas activas y failover interno
- Reinicio / reschedule automático de servicios caídos
- Tolerancia a particiones de red
- Limitación de propagación de fallos en cascada
- Chaos testing / fault injection en producción controlada
 
- Observabilidad distribuida y trazabilidad- Métricas por servicio y por endpoint
- Logs estructurados con IDs de correlación
- Trazas distribuidas end-to-end
- Mapas de dependencias entre servicios
- Alertas orientadas a SLO / SLA
- Auditoría de llamadas entre servicios
- Análisis de cuellos de botella de latencia
- Detección de outliers de error rate
- Dashboards operativos unificados
- Retención histórica para postmortems
 
- Gobernanza de contratos y compatibilidad- Contratos de API versionados
- Pruebas de contrato consumidor/proveedor
- Validación automática de cambios de esquema
- Deprecación gradual de endpoints
- Control centralizado de políticas de acceso
- Catálogo de servicios y documentación interna
- Reglas de seguridad y autorización homogéneas
- Auditoría de cambios en interfaces públicas
- Gestión de breaking changes y avisos tempranos
- Revisión técnica cruzada antes de exponer nuevas APIs
 
- Multi-tenancy y aislamiento de tráfico- Separación lógica por tenant / cuenta / cliente
- Namespaces de datos por cliente
- Rate limiting y cuotas por organización
- Cifrado y llaves dedicadas por tenant
- Aislamiento de “noisy neighbors” y fair-use
- Aislamiento de fallos por tenant / dominio funcional
- Control de acceso por tenant integrado en la capa de negocio
- Auditoría y trazabilidad por cliente
- Políticas de retención y borrado por cliente
- Personalización de configuración / features por tenant
 
 
- Patrones de microservicios
 
- Frameworks web y diseño de APIs