Chapter 8. Focus on the Data

Meeting the “needs” and “wants” we’ve brought up requires two types of changes: new technologies and new ways of using them. Neither by itself will complete the change that developers need to accomplish.

Technology

Over the last several years, many new systems for storing, querying, and retrieving data have become available. We’ve looked at the various types of data storage systems that a project will have to deal with: document stores, graph databases, key/value stores, and other new types of databases that each bring unique capabilities to bear on the issues at hand. However, it is when these abilities are combined in a multi-model database that a development team can truly achieve data agility.

Multi-model databases allow flexible representation of a wide variety of data, with the details depending on which models the database supports. Once such a database is adopted, the team can develop expertise in that specific tool. By comparison, the polyglot persistence approach, in which several tools are combined to provide different capabilities, leads to developers becoming experts in a subset of those tools, making it harder to see how a change in one system will affect others.

Another benefit to combining storage in one multi-model system is the simplification of the application logic that interacts with it. If multiple stores hold the application’s data, then the application tier needs to synthesize any behaviors that cross those storage barriers. ...

Get Defining Data-Driven Software Development now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.