Book description
Architect and design data-intensive applications and, in the process, learn how to collect, process, store, govern, and expose data for a variety of use cases
Key Features
- Integrate the data-intensive approach into your application architecture
- Create a robust application layout with effective messaging and data querying architecture
- Enable smooth data flow and make the data of your application intensive and fast
Book Description
Are you an architect or a developer who looks at your own applications gingerly while browsing through Facebook and applauding it silently for its data-intensive, yet ?uent and efficient, behaviour? This book is your gateway to build smart data-intensive systems by incorporating the core data-intensive architectural principles, patterns, and techniques directly into your application architecture.
This book starts by taking you through the primary design challenges involved with architecting data-intensive applications. You will learn how to implement data curation and data dissemination, depending on the volume of your data. You will then implement your application architecture one step at a time. You will get to grips with implementing the correct message delivery protocols and creating a data layer that doesn't fail when running high traffic. This book will show you how you can divide your application into layers, each of which adheres to the single responsibility principle. By the end of this book, you will learn to streamline your thoughts and make the right choice in terms of technologies and architectural principles based on the problem at hand.
What you will learn
- Understand how to envision a data-intensive system
- Identify and compare the non-functional requirements of a data collection component
- Understand patterns involving data processing, as well as technologies that help to speed up the development of data processing systems
- Understand how to implement Data Governance policies at design time using various Open Source Tools
- Recognize the anti-patterns to avoid while designing a data store for applications
- Understand the different data dissemination technologies available to query the data in an efficient manner
- Implement a simple data governance policy that can be extended using Apache Falcon
Who this book is for
This book is for developers and data architects who have to code, test, deploy, and/or maintain large-scale, high data volume applications. It is also useful for system architects who need to understand various non-functional aspects revolving around Data Intensive Systems.
Publisher resources
Table of contents
- Title Page
- Copyright and Credits
- Packt Upsell
- Contributors
- Preface
- Exploring the Data Ecosystem
-
Defining a Reference Architecture for Data-Intensive Systems
- What is a reference architecture?
- Reference architecture for a data-intensive system
- Oracle's information management conceptual reference architecture
- Oracle's information management reference architecture
- Desired properties of a data-intensive system
- Defining architectural principles
- Listing architectural assumptions
- Architectural capabilities
- Summary
- Patterns of the Data Intensive Architecture
- Discussing Data-Centric Architectures
- Understanding Data Collection and Normalization Requirements and Techniques
- Creating a Data Pipeline for Consistent Data Collection, Processing, and Dissemination
- Building a Robust and Fault-Tolerant Data Collection System
- Challenges of Data Processing
- Let Us Process Data in Batches
-
Handling Streams of Data
- What is a streaming system?
- Capabilities (and non-capabilities) of a streaming application
- High-level reference architecture
- Samza architecture
- Kafka streams
- Samza's stream processing API
- The scheduler/executor component of the streaming architecture
- Processing concepts and tradeoffs
- Micro-batch stream processing
- Windowing
- Summary
- References
-
Let Us Store the Data
- The data explosion problem
- Relational Database Management Systems and Big data
- Introducing Hadoop, the Big Elephant
- HDFS file formats
- HBase
- Graph stores
- Semantic graph
- Stardog
- BITES – Unstructured/Semistructured document store
- Data integrity and validating constraints
- Monitoring and operation
- Performance
- Summary
- Further reading
-
When Data Dissemination is as Important as Data Itself
- Data dissemination
- Discussing the non-functional aspects of the preceding architecture
- Summary
- Other Books You May Enjoy
Product information
- Title: Architecting Data-Intensive Applications
- Author(s):
- Release date: July 2018
- Publisher(s): Packt Publishing
- ISBN: 9781786465092
You might also like
book
Istio in Action
Solve difficult service-to-service communication challenges around security, observability, routing, and resilience with an Istio-based service mesh. …
book
Designing Data-Intensive Applications
Data is at the center of many challenges in system design today. Difficult issues need to …
book
Developing Apps with GPT-4 and ChatGPT
This minibook is a comprehensive guide for Python developers who want to learn how to build …
book
Microservices Patterns
Microservices Patterns teaches enterprise developers and architects how to build applications with the microservice architecture. Rather …