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

Capabilities (and non-capabilities) of a streaming application


We have talked about Lambda architecture in chapters and if we remember, Lambda had two layers:

  • A batch layer that worked on a huge dataset essentially recreating views over a period of time
  • A stream/speed layer that worked on a small dataset and ran logic that was sufficient to give a good enough answer quickly

 

 

Lambda architecture's speed layer

Let's do a bit of a deep dive into the speed layer to have a common understanding.

In the batch layer, we run a compute algorithm over the entire dataset. This dataset can be, and usually is, in peta bytes ranges. Clearly, this is a very resource-intensive operation and one that simply throws the concept of latency out of the window. Latency is not a concern for the batch layer. But for the speed layer, latency plays an important role. If the speed layer is not able to produce results in acceptable latency, usually in a few seconds, the speed layer may as well be regarded as a distant cousin...