Book Review: Designing Data-Intensive Applications (Part 3)

This is part 3 of a three-part review. You can find part 1 here and part 2 here.

10. Batch Processing

This is the first chapter of the part of the book dealing with derived data. There is a distinction between systems of record (holds the authoritative version of the data) and derived data systems. Data in derived data systems is existing data transformed or processed in some way. For example, a cache or a search index.

Book Review: Designing Data-Intensive Applications (Part 2)

This is part 2 of a three-part review. You can find part one here.

5. Replication

This is the first chapter in the Distributed Data section. Replication means that the same data is stored on multiple machines. Some reasons for replication are: to keep working even if some parts of the system fail (increased availability), to keep data geographically close to the users (reduce latency), and to increase read throughput by serving the same data from many machines.

Book Review: Designing Data-Intensive Applications (Part 1)

This is part one of a three-part review.

What a great book Designing Data-Intensive Applications is! It covers databases and distributed systems in clear language, great detail, and without any fluff. I particularly like that the author, Martin Kleppmann, knows the theory very well but also seems to have a lot of practical experience of the types of systems he describes.

Accelerate: Building and Scaling High-Performing Technology Organizations [Book Review]

The book Accelerate: Building and Scaling High-Performing Technology Organizations by Nicole Forsgren, Jez Humble, and Gene Kim details the findings of four years of research on how DevOps affects various outcomes, such as software delivery tempo and stability, as well as the organizations' profitability and market share. DevOps in this context means things like continuous delivery, automated tests, trunk-based development, and proactive monitoring of system health. It is quite clear that DevOps practices bring lots of benefits to organizations adopting them. The research findings are also in line with my own experience of DevOps.

The findings of the research are presented in the first part of the book (a bit more than half of it).

Programming: Math or Writing?

Is programming like math, or is it like writing? I think there are elements of both in it, even though programming is a discipline of its own. Nevertheless, it is interesting to think about what aspects are like math, and what aspects are like writing. Maybe it will even lead to a better understanding of what programming is.

Like Math

Sometimes, the domain of the program requires math — for example; machine learning, graphics programming, or financial modelling. But I am more interested here in parallels with math that apply regardless of the domain.