Book Image

Architecting Data-Intensive Applications

By : Anuj Kumar
Book Image

Architecting Data-Intensive Applications

By: Anuj Kumar

Overview of this book

<p>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.</p> <p>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.</p>
Table of Contents (18 chapters)
Title Page
Packt Upsell
Contributors
Preface
Index

High-level reference architecture


If I have to give a short-phrase definition of a streaming system, I would be very tempted to call it a complex adaptive system. A data intensive stream system needs to have the ability to analyze the data without waiting for it to be persisted. This is an important requirement and possibly one, if not the only one, requirement that defines the architecture of a streaming system. Data that gets ingested should be made meaningful at the very moment that it gets ingested. Every second of delay can sometimes be the difference between winning or losing. This may sound dramatic, but let me try to prove it with a real-world example.

Imagine you are a security incident response team working on identifying the actors behind the cyber attack that is currently unfolding in your customers' network. You see hundreds of thousands of IP addresses in the logs and you want to filter out the relevant ones (ones that MAY indicate a suspicious actor) from the irrelevant ones...