InfoQ Live Logo

The Software Architects' Newsletter
March 2024
View in browser

Welcome to the InfoQ Software Architects' Newsletter! Each month, we bring you essential news and experience on emerging patterns and technologies from industry peers.

This month, we focus on "Evolution of architectures: Monolith, microservices, and moduliths". Technologies, patterns, and practices from this topic span the entire "diffusion of innovation" graphs in our InfoQ Trends Reports 2023 eMag and InfoQ Software Architecture and Design Trends Report. We also discussed the impact of these topics in our "2023 Year in Review Podcast", which range from early adopter themes, like designing for resilience and micro front ends, to early majority topics, such as designing modular monoliths and correctly building distributed systems.

Key challenges remain, including when and how to modularize applications, choice of associated language and platform stack, and designing and building for understandability.

News

McDonald's: Strangulating the Monolith to a Pluggable and Scalable Architecture

In a recent post on the McDonald's Technical Blog, Tasneem Damen, principal architect, shared that by extracting microservices from the monolith, McDonald's developers are creating more portable and resilient applications.

The article focuses on applying strangulating patterns and engineering techniques for brownfield innovation. Damen stated, "Many [microservice] frameworks exist for greenfield software development but are not always viable for a big-bang replacement of proprietary enterprise applications".

In a related post, InfoQ editor Aditya Kulkarni discussed how McDonald's has streamlined its continuous delivery using GitHub Actions and reusable workflows.

What Is a Modular Monolith?

A recent "Medium" article by Milan Jovanović explored how modular monoliths combine the simplicity and robustness of traditional monolithic applications with the flexibility and scalability of microservices.

Modular monoliths introduce a few important technical challenges that need to be solved. To achieve a modular architecture, the modules must be independent and interchangeable. They must provide the required functionality and have a well-defined interface exposed to other modules.

Uber Builds Scalable Chat Using Microservices with GraphQL Subscriptions and Kafka

Uber replaced their legacy architecture built using the WAMP protocol with a new solution that uses GraphQL subscriptions. The main drivers for creating a new architecture were challenges around reliability, scalability, observability/debuggability, and technical debt impeding the team’s ability to maintain the existing solution.

Expedia Speeds up Flight Search with Micro Front Ends and GraphQL Optimizations

In a recent news post, InfoQ editor Rafal Gancarz explored how Expedia made flight search faster by up to 52% (page usable time) by applying a range of optimizations to web and mobile applications. To support these improvements, the company enhanced the observability of its applications. Expedia Flights web application has been migrated to Micro Front End Architecture (MFA) to allow flexibility, reusability, and better optimization.

Flight searches represent a large portion of Expedia's user traffic. As the company can’t directly control the latency of 3rd-party APIs, it decided to optimize network calls and its progressive web application (PWA) to improve user experience.

Booking.com Doubles Delivery Performance Using DORA Metrics and Micro Front Ends

The team in Booking.com's fintech business unit implemented a series of improvements across the backend and the front end of its platform. It doubled the delivery performance, as measured by DORA metrics. The Micro Front Ends (MFE) pattern was also used to break up the monolithic FE application into multiple decomposed apps that could be deployed separately.

Hashnode Creates Scalable Feed Architecture on AWS with Step Functions, EventBridge, and Redis

Hashnode created a scalable event-driven architecture (EDA) for composing feed data for thousands of users. The company used serverless services on AWS, including Lambda, Step Functions, EventBridge, and Redis Cache. The solution leverages Step Functions’ distributed maps feature that enables high-concurrency processing.

Sponsored

Build Intelligent Apps - Sponsored by Microsoft Azure

Combine AI, cloud-scale data, and cloud-native app development to create highly differentiated digital experiences. Start building and modernizing intelligent applications with Microsoft Azure.

Learn more - sponsored by Microsoft Azure

Case Study

Architecting for High Availability in the Cloud with Cellular Architecture

Cellular architecture is a design pattern that helps achieve high availability in multi-tenant applications. The goal is to design an application so all its components can be deployed into an isolated “cell” that is entirely self-sufficient. Then, many discrete deployments of these “cells” can be created without dependencies.

Each cell is a fully operational, autonomous instance of your application that is ready to serve traffic without dependencies on or interactions with other cells.

Traffic from users can be distributed across these cells, and if an outage occurs in one cell, it will only impact the users in that cell while the other cells remain fully operational. This minimizes the “blast radius” of any outages the service may experience and helps ensure that the outage doesn’t impact the SLA for most users.

There are many different strategies for organizing your cells and deciding which traffic should be routed to which cell. For more information on the benefits of cellular architecture and some examples of these different strategies, Peter Voshall’s talk from re:Invent 2018: "How AWS Minimizes the Blast Radius of Failures" is highly recommended.

Managing an application with many independent cells can be daunting. For this reason, building as much automation as possible for the common infrastructure tasks necessary for creating and maintaining cells is extremely valuable.

The full version of this article focuses less on the "why" of cellular architecture and more on the "how" of creating this automation.

This content is an excerpt from a recent InfoQ article by Chris Price, "Architecting for High Availability in the Cloud with Cellular Architecture".

To get notifications when InfoQ publishes content on these topics, follow "Architecture and Design", "Microservices", and "Modularity" on InfoQ.

Missed a newsletter? You can find all of the previous issues on InfoQ.

Sponsored

System Design on AWS (By O’Reilly) - Sponsored by DragonflyDB

Building and operating large scale software systems requires first principles thinking to design and develop the technical architecture before actually putting the system into code. Download this eBook to learn how enterprises can avoid the mistake of wasted software development effort by carefully thinking about systems and investing time in understanding bottlenecks, system requirements, users being targeted, user access patterns and many such decisions, which in short, is System Design.

Download the eBook “System Design on AWS,” sponsored by Dragonfly

Upcoming Events

InfoQ and QCon: For practitioners, by practitioners

QCon London 2024, April 8-10

Last chance to secure your place at QCon London to learn valuable insights on the latest practices in FinTech, emerging AI and ML trends, platform engineering, and more. Register and save with team discounts.


InfoQ Dev Summit Boston 2024, June 24-25

Discover transformative insights to level up your software development decisions. Explore the schedule and register now for early bird savings and team discounts until April 16.


InfoQ Dev Summit Munich 2024, Sept 26-27

Get practical advice from senior developers to navigate your current dev challenges. Register now with early bird tickets and group discounts until April 23.


QCon San Francisco 2024, Nov 18-22

Deep dive into 12 major software topics with senior developers sharing implementable ideas to shape your projects. Save now with our early bird savings and team discounts until April 16.

About InfoQ

Senior software developers rely on the InfoQ community to keep ahead of the adoption curve. One of the main reasons software architects and engineers tell us they keep coming back to InfoQ is because they trust the information provided and selected by their peers.

We’ve been helping software development teams adopt new technologies and practices for over 18 years through InfoQ articles, news items, podcasts, tech talks, trends reports, and QCon software development conferences.

We hope you find this newsletter useful. If not, you can unsubscribe using the link below.

Unsubscribe

Forwarded email? Subscribe and get your own copy.

Subscribe

Follow InfoQ on:

You have received this email because you subscribed to "The Architects' Newsletter". To stop receiving the Architects' Newsletter, please click the following link: Unsubscribe

- - -

C4Media Inc. (InfoQ.com), 705-2267 Lake Shore Blvd. West,
Toronto, Ontario, Canada, M8V 3X2