</> CodeBooks
    ← Volver a Arquitectura de software (página 6)
    Portada de Designing Data-Intensive Applications

    Designing Data-Intensive Applications

    Martin Kleppmann

    Editorial
    O'Reilly
    Año
    2017
    Páginas
    ~613
    Nivel
    Intermedio

    De qué trata

    Obra de referencia esencial e internacionalmente aclamada de la ingeniería de software moderna, escrita por Martin Kleppmann y publicada por O'Reilly en 2017. El libro desentraña con profundidad y claridad los principios fundamentales que rigen los sistemas de datos que deben ser fiables, escalables y mantenibles a largo plazo. Está dirigido a desarrolladores backend de nivel intermedio a avanzado, ingenieros de datos y arquitectos de software que construyen aplicaciones distribuidas o procesan grandes volúmenes de información y necesitan entender qué sucede realmente dentro de las herramientas de datos en lugar de aceptarlas como cajas negras.

    A través de tres partes meticulosamente estructuradas, el libro enseña: fundamentos de diseño de sistemas de datos, evaluando modelos de datos relacionales, documentales y de grafos (SQL, Cypher, SPARQL); formatos de serialización y compatibilidad evolutiva de esquemas (JSON, XML, Protocol Buffers, Apache Thrift, Apache Avro); funcionamiento de motores de almacenamiento OLTP y OLAP, comparando árboles B frente a árboles LSM (SSTables, MemTables) y almacenamiento columnar; desafíos de datos distribuidos mediante replicación (líder único, multilíder, sin líder / tipo Dynamo) y particionamiento (sharding); niveles de aislamiento de transacciones (Read Committed, Snapshot Isolation / MVCC, anomalías de escritura sesgada y serializabilidad); problemática de redes y relojes físicos en sistemas distribuidos; consenso y transacciones atómicas (Two-Phase Commit, Paxos, Raft, Zab); y procesamiento de datos derivados, tanto por lotes (MapReduce, Apache Spark) como en tiempo real mediante flujos de eventos (Change Data Capture, Apache Kafka, Apache Flink).

    El enfoque del texto es completamente conceptual, analítico y comparativo; no incluye ejercicios prácticos ni proyectos guiados para programar un sistema particular, sino que examina el diseño interno y las compensaciones de tecnologías reales como PostgreSQL, MySQL, Apache Cassandra, Redis, ZooKeeper, Elasticsearch y Hadoop. Su valor excepcional reside en dotar al ingeniero de un marco de pensamiento crítico para juzgar promesas comerciales y evaluar rigurosamente los trade-offs de consistencia, latencia y tolerancia a fallos. Es un libro denso pero indispensable, cuya lectura rinde frutos inmediatos en cualquier decisión de arquitectura de backend.

    • Sistemas distribuidos
    • Escalabilidad y Confiabilidad
    • Modelos de datos (SQL, NoSQL, Grafos)
    • Árboles B y LSM-Trees
    • Replicación y Particionamiento (Sharding)
    • Niveles de aislamiento ACID y MVCC
    • Consenso distribuido (Paxos, Raft)
    • Apache Kafka y Event Sourcing
    • Procesamiento batch (MapReduce, Spark)
    • Procesamiento en streaming (Flink)
    • Change Data Capture (CDC)

    ¿Cómo enseña?

    TeóricoPráctico

    Teórico

    • ✗ Sin ejercicios
    • ✗ Sin proyectos

    Más de Arquitectura de software con nivel Intermedio