🥂 You don’t have a Monolith Anymore 🥂

😱 But it behaves like one 😱

Created by Alvaro (@kanekotic) @ClimatePartner.

The monolith 🤒

The microservice 🥳

Awesome! questions?!
or is it not finish…

Can there be problems with microservice?

Did you had any of this cases?

  • Before we release a new version we need to sync deploys with another team.
  • Our application was down but is not our issue.
  • Our service was working and scaling fine until the team X started using us.

Dam You Microlith!

effectively is a broken down monolith

what got lost in translation?

Domains != Resources

Independence != Single Source

Faster != Synchronous

Resilience != Complete

We are doomed!!!

questions???…
ok!

So what do we do?!

The Naive Solution

circuit braked Microlith

✔️ We don’t fail continuously if some other service fails

❌ We silently don’t finish the entire process requested

❌ We require all chain of dependencies to be called

❌ We force other services to scale to our needs

❌ Data is mutable so errors will be propagated and not solvable

A Better Solution

The Outbox Pattern

Reactive Microlith

wait still microlith?!

✔️ We don’t fail continuously if some other service fails

✔️ We always finish our process and promise the rest will be done

✔️ We just need ourselves to do what we promise

✔️ Fast services will be fast, and slow services can go slow

❌ Data is mutable so errors will be propagated and not solvable

An Even Better Solution

Event Sourcing Journal

Microsystem (almost)

wait almost?!

Microsystem

✔️ We don’t fail continuously if some other service fails

✔️ We always finish our process and promise the rest will be done

✔️ We just need ourselves to do what we promise

✔️ Fast services will be fast, and slow services can go slow

✔️ Data is immutable so a change in our code can solve historical errors