
Designing Data-Intensive Applications, 2nd Edition
Martin Kleppmann, Chris Riccomini
- Editorial
- O'Reilly
- Año
- 2026
- Páginas
- ~670
- Nivel
- Intermedio
De qué trata
Segunda edición actualizada de la obra de referencia fundamental sobre arquitectura de datos y sistemas distribuidos, coescrita por Martin Kleppmann y Chris Riccomini y publicada por O'Reilly. Esta edición amplía y moderniza el clásico original incorporando la evolución del ecosistema en la nube, las infraestructuras modernas de datos y nuevos patrones de procesamiento en tiempo real. Está pensada para ingenieros de software, arquitectos de sistemas e ingenieros de datos de nivel intermedio y avanzado que ya dominan el desarrollo backend o el uso de bases de datos y buscan comprender en profundidad los principios de confiabilidad, escalabilidad y mantenibilidad.
El texto desglosa los fundamentos y compromisos arquitectónicos de los sistemas de datos modernos sin atarse a una única tecnología propietaria. Analiza modelos de datos (relacional, documental y grafos), motores de almacenamiento interno (estructuras B-trees frente a LSM-trees y SSTables), formatos de codificación y evolución de esquemas (Protocol Buffers, Apache Avro, JSON) y técnicas de replicación (líder único, multi-líder y sin líder) y particionamiento (sharding). Dedica secciones exhaustivas a los desafíos inherentes a los entornos distribuidos (relojes físicos y lógicos, fallos de red, modelos de consistencia y algoritmos de consenso como Paxos y Raft), el soporte transaccional (niveles de aislamiento, transacciones distribuidas y 2PC), así como el procesamiento analítico por lotes y en streaming con herramientas de referencia como Apache Kafka, Apache Flink y Apache Spark.
A diferencia de manuales guiados de programación, no construye una aplicación paso a paso con código de producción ni ofrece ejercicios de fin de capítulo, sino un riguroso análisis conceptual y arquitectónico ilustrado con diagramas de funcionamiento interno y lecciones de casos reales. Aporta una comprensión intemporal de cómo funcionan por dentro los motores de bases de datos y plataformas distribuidas, permitiendo al profesional evaluar tecnologías y tomar decisiones de diseño con criterio sólido. No cubre la administración práctica de servicios gestionados en la nube ni código de capas de presentación o negocio, por lo que es indispensable contar con experiencia previa en concurrencia y desarrollo de servidores antes de su lectura.
- Sistemas distribuidos
- Escalabilidad
- Replicación y particionamiento
- Consistencia y consenso
- LSM-trees y B-trees
- Transacciones ACID
- Apache Kafka
- Stream processing
- Batch processing
- Modelos de datos
¿Cómo enseña?
Teórico
- ✗ Sin ejercicios
- ✗ Sin proyectos

