Chapter 12. Why event-driven?


This chapter covers

  • Using event-driven architectures in the front end and back end systems
  • Relating event-driven architectures to reactive programming
  • Using an event-driven approach to implement microservices
  • Managing scalability, availability, and resilience
  • Estimating costs and using that information to design a business model

In the previous chapter, you completed building a media-sharing application integrated with an authentication service to recognize users. In this chapter, we’ll dive more deeply into the implications of what event-driven means and how to use multiple functions together to build an application.

Different architectural styles are also covered in this chapter. We’ll compare the solution we’re building using AWS Lambda with patterns that have evolved over the years to improve the scalability, security, and manageability of distributed applications, such as reactive programming and microservices.

Before the internet caused us to think about what scalability really means, it was common practice to recommend avoiding distributed systems: management was complex and expensive servers were the best answer to any scalability issue. But nowadays, running applications concurrently on thousands of servers is relatively common for internet-facing companies and designing your application for scalability should be among your main tenets.

12.1. Overview of event-driven architectures

12.2. Starting from the front end

12.3. What about the back end?

12.4. Reactive programming

12.5. The path to microservices

12.6. Scalability of the platform

12.7. Availability and resilience

12.8. Estimating costs