Dataflow

Designing Data-Intensive Applications - Chapter 12 - The Future of Data Systems

Designing Data-Intensive Applications - Chapter 12 - The Future of Data Systems

Translations: RU

Earlier the book club of our company has studied excellent book:

Martin Kleppmann - Designing Data-Intensive Applications

This is the best book I have read about building complex scalable software systems. 💪

As usually I prepared an overview and mind-map.

Chapter 12 is a summary of the book and a visionary view of the future.

  • Data Integration.
    • Overview of the ways we have to integrate data.
    • Causality and why we need Total Order and Idempotency.
    • Transactions and Linearizability
    • Limitations of Total Order.
    • Lambda architecture and unifying batch and stream processing as the most perspective approach.
  • Unbundling Databases.
    • Overview of composing data storages together.
    • Designing apps around Dataflow.
    • Usage of derived states.
  • Aiming for Correctness: what problems to consider and how to deal with them.
    • End-to-end fencing token.
    • How to process multi-partition requests.
    • Timeliness and Integrity issues. Apology workflow in business.
    • Meta approach: Trust, but Verify.
  • Doing the Right Thing.
    • Predictive Analytics is discriminating people! We have responsibility and accountability here.
    • Privacy is conflicting with Tracking. Total surveillance should be legislated and self-regulated.

Download full mind map (PDF)

Designing Data-Intensive Applications - Chapter 10 - Batch Processing

Designing Data-Intensive Applications - Chapter 10 - Batch Processing

Translations: RU

Earlier the book club of our company has studied excellent book:

Martin Kleppmann - Designing Data-Intensive Applications

This is the best book I have read about building complex scalable software systems. 💪

As usually I prepared an overview and mind-map.

Chapter 10 discovers all aspects about big data Batch Processing. If your system needs to process some data then your DEV team should learn this info.

  • Unix tools for batch processing and brilliant concept of pipes.
  • MapReduce and Distribute File Systems. How this approach solves problems of Unix pipes. Fault Tolerance and Partitioning. Usage and implementations of Joins, Grouping, Mapping. Available tools and problems of this approach.
  • What is beyond MapReduce. Dataflow engines, Graph processing, High-level APIs and MPP databases. Dealing with Fault Tolerance and Partitioning. Implementations, problems, what to use and when.

Download full mind map (PDF)