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

Data collection system requirements


When designing any system, the first thing to do is to list down exactly what is required from that system. This not only focuses the design effort, but also helps eliminate any differences between various stakeholders.

So, let's list some of the major functional and nonfunctional requirements for the Data-Collection System:

  • The System should support both Pull-based as well as Push-based data collection

With pull-based data collection, we should be able to pull data, at regular intervals, from a given source. Most of the systems we collect data from are usually pull-based. They expose APIs that our data-collection system can utilize to pull data in an efficient manner.

Push-based data-collection requires the data-collection system to expose an API that the end users can use to push the data into the System. This kind of system is much more complicated to implement if the API must be exposed to the outside world. The reason is that you then need to implement...