Reactive Systems on AWS - Reactive Systems on AWS

Reactive Systems on AWS

Publication date: November 1, 2021 (Document history)

Today, architects and developers are expected to implement highly scalable and resilient distributed system on Amazon Web Services (AWS). This whitepaper outlines best practices for designing a system based on reactive principles using the AWS Cloud and offers a reference architecture to guide organizations in the delivery of these systems.

Introduction

Microservice application requirements have changed dramatically in recent years. Many modern applications are expected to handle petabytes of data, require close to 100% uptime, and deliver sub-second response time to users. Typical N-tier applications can’t deliver on these requirements. Today reactive architectures and reactive systems have been adopted by a growing number of enterprises, because it is necessary to design applications in a highly scalable and responsive way. But what exactly is a reactive system?

The Reactive Manifesto, describes the essential characteristics of reactive systems including: responsiveness, resiliency, elasticity, and being message driven.

Being message driven is perhaps the most important characteristic of reactive systems. Asynchronous messaging helps in the design of loosely coupled systems, which is a key factor for scalability. In order to build highly resilient systems, it is important to isolate services from each other. Microservices are an architectural and organizational approach to software development where software is composed of small independent services that communicate over well-defined APIs. These services are owned by small, self-contained teams. Isolation and decoupling are an important aspect of the microservices pattern as well. This makes reactive systems and microservices a natural fit.