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

What is a streaming system?


So what exactly do we mean when we mention a streaming system?

A streaming system is one that possesses the following traits:

  • It is not only able but also capable of consuming a variety of data that seems to never end.
  • It is capable of performing chunks of predefined, focused processing on the incoming data.
  • It is capable of getting rid of the processed data efficiently. What I mean by getting rid of is that it is as efficient in giving the data to the downstream system as it is efficient in consuming from the upstream systems or data sources.

 

 

 

These, for me, are the essential traits of a streaming system. Remember I have intentionally left the non-functional traits out of the list, essentially because I believe things such as distributed processing, high-availability, and reliability are essential. This does not mean that we will not be talking about them in the context of streaming system.

Another thing to mention is that what I mean by data that never ends, I do...