Designing Data-Intensive Applications: The Big Ideas Behind by Martin Kleppmann

By Martin Kleppmann

Data is on the middle of many demanding situations in method layout this present day. tricky concerns must be discovered, comparable to scalability, consistency, reliability, potency, and maintainability. furthermore, we now have an overpowering number of instruments, together with NoSQL datastores, circulate or batch processors, and message agents. What are the perfect offerings on your program? How do you are making feel of most of these buzzwords?

In this useful and complete consultant, writer Martin Kleppmann is helping you navigate this different panorama via analyzing the professionals and cons of varied applied sciences for processing and storing facts. software program retains altering, however the basic ideas stay an identical. With this booklet, software program engineers and designers will easy methods to observe these principles in perform, and the way to make complete use of knowledge in glossy applications.

  • Peer below the hood of the structures you already use, and tips on how to use and function them extra effectively
  • Make proficient judgements by means of deciding on the strengths and weaknesses of other tools
  • Navigate the trade-offs round consistency, scalability, fault tolerance, and complexity
  • Understand the allotted platforms study upon which sleek databases are built
  • Peek behind the curtain of significant on-line companies, and research from their architecture

Show description

Read Online or Download Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems PDF

Best data modeling & design books

Developing Quality Complex Database Systems: Practices, Techniques and Technologies

The target of constructing caliber complicated Database platforms is to supply possibilities for making improvements to state-of-the-art database platforms utilizing cutting edge improvement practices, instruments and methods. every one bankruptcy of this ebook will supply perception into the powerful use of database expertise via versions, case experiences or adventure studies.

Mapping Scientific Frontiers: The Quest for Knowledge Visualization

This can be an exam of the background and the state-of-the-art of the hunt for visualizing clinical wisdom and the dynamics of its improvement. via an interdisciplinary standpoint this booklet offers profound visions, pivotal advances, and insightful contributions made through generations of researchers and execs, which portrays a holistic view of the underlying rules and mechanisms of the improvement of technology.

Pentaho for Big Data Analytics

Increase your wisdom of massive information and leverage the facility of Pentaho to extract its treasures assessment A consultant to utilizing Pentaho enterprise Analytics for giant facts research research Pentaho’s visualization and reporting instruments with useful examples and tips specified insights into churning significant info into significant wisdom with Pentaho intimately Pentaho speeds up the belief of price from huge information with the main whole resolution for giant facts analytics and knowledge integration.

Mastering Data Mining with Python

Key FeaturesDive deeper into information mining with Python – do not be complacent, sharpen your talents! From the most typical parts of knowledge mining to state-of-the-art innovations, we have you coated for any data-related challengeBecome a extra fluent and assured Python data-analyst, in complete keep an eye on of its broad variety of librariesBook DescriptionData mining is an essential component of the knowledge technology pipeline.

Additional resources for Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems

Example text

In Part III of this book we will return to this topic and explore systematic ways of dealing with caching, denormalization, and derived data. Unfortunately, normalizing this data requires many-to-one relationships (many peo‐ ple live in one particular region, many people work in one particular industry), which don’t fit nicely into the document model. In relational databases, it’s normal to refer to rows in other tables by ID, because joins are easy. iii If the database itself does not support joins, you have to emulate a join in application code by making multiple queries to the database.

Scalability | 17 While distributing stateless services across multiple machines is fairly straightfor‐ ward, taking stateful data systems from a single node to a distributed setup can intro‐ duce a lot of additional complexity. For this reason, common wisdom until recently was to keep your database on a single node (scale up) until scaling cost or highavailability requirements forced you to make it distributed. As the tools and abstractions for distributed systems get better, this common wisdom may change, at least for some kinds of applications.

In a scalable system, you can add processing capacity in order to remain reliable under high load. Maintainability has many facets, but in essence it’s about making life better for the engineering and operations teams who need to work with the system. Good abstrac‐ tions can help reduce complexity and make the system easier to modify and adapt for new use cases. Good operability means having good visibility into the system’s health, and having effective ways of managing it. There is unfortunately no easy fix for making applications reliable, scalable, or main‐ tainable.

Download PDF sample

Rated 4.69 of 5 – based on 8 votes