“Timeless design in a cloud native world” by Uwe Friedrichsen

Cloud Native

Distributed Systems Failures

Classic Mitigations

High-availabiltiy hardware/software

Delegate failure handling to infrastructure level

Implement resilient software design patterns

Reducing distributed failures

Reducing remote communication points

We can:

On Monoliths

Example

A ecommerce systems:

Typical design

In retrospective, it usually looks like this:

Properties of the Typical Design

Coupling

(from Structured Design paper, 1974)

timeless_design_cloud_couplin_factors.PNG

Core functional decomposition approaches

timeless_design_cloud_functional_decomposition.PNG

Back to Example

6 uses cases

timeless_design_cloud_6_use_cases.PNG

Design

Same data access, different actors

Same data access, different actors, again

New Services

timeless_design_cloud_new_services.PNG

Trade-Offs