Architecting Distributed Transactional Applications
by Guy Harrison, Andrew Marshall, Charles Custer
Chapter 3. Distributing and Scaling the Storage Layer
To some extent, the problem of distributing application logic—or more generally, computational services—was solved decades ago. Even in the client-server era prevalent in the 1990s, application logic would typically be running on the client tier in multiple locations—indeed, there would typically be one copy of application logic running on each user’s client PC. Each had, in effect, their own compute and memory, which do not depend on, or interfere with, another user’s compute or memory.
As we transitioned from client-server to the early internet, web application servers took on the role of hosting computational services, and it was generally possible to deploy as many of these as was necessary to support demand.
However, the database layer has historically been a completely different matter. Every application will have certain data elements that must be consistent across all users or at least some subset of users. Therefore, users must share database services. Maintaining a consistent and persistent database state across distributed nodes has been challenging.
Database technology has come a long way since the monolithic databases that powered web 1.0. Today, reliable distributed transactional databases exist, and these databases are best suited to meet the demands of modern distributed applications.
Distributed Database Examples
In the following sections, we describe the capabilities common to modern distributed transactional ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access