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

API Platform


An API Platforms is an application style that defines how an API-centric application should be built, what core capabilities should be present in such an application, and how the data flows through it.

We can envision the API Platform as "the" mechanism that enables exposing business services to both internal and external customers.

If you have been paying attention, you would have noticed that we mentioned exposing Business Services via the gateway. There was an implicit assumption made in that statement. The assumption was that your backend application is decomposed into a set of microservices that handle only a specific piece of the overall functionality. And since we made an assumption that we have microservices, we will make another assumption for now (to keep things simple), that these microservices are exposed to their clients via a REST API.

Let's take an example to understand the importance of having an API Gateway.

Let's assume that you are building an Online Web Store...