Paper

Abstract

When writing a distributed application, conventional wisdom says to split your application into separate services that can be rolled out independently. This approach is wellintentioned, but a microservices-based architecture like this often backfires, introducing challenges that counteract the benefits the architecture tries to achieve. Fundamentally, this is because microservices conflate logical boundaries (how code is written) with physical boundaries (how code is deployed). In this paper, we propose a different programming methodology that decouples the two in order to solve these challenges. With our approach, developers write their applications as logical monoliths, offload the decisions of how to distribute and run applications to an automated runtime, and deploy applications atomically. Our prototype implementation reduces application latency by up to 15× and reduces cost by up to 9× compared to the status quo.

Fonts

Stephen Strickland - - 1 min read
  1. Boska
  2. Switzer
  3. Satoshi
  4. Cabinet
  5. Supreme
  6. General Sans
  7. Space Grotesk

Evolutionary Architecture By Example

Stephen Strickland - - 1 min read

https://github.com/evolutionary-architecture/evolutionary-architecture-by-example

Navigate the complex landscape of .NET software architecture with our step-by-step, story-like guide. Unpack the interplay between modular monoliths, microservices, domain-driven design, and various architectural patterns. Go beyond the one-size-fits-all solutions and understand how to blend these approaches based on your unique needs.