Upgrade to Pro — share decks privately, control downloads, hide ads and more …

A Monolith on the Dissecting Table: The Strangl...

A Monolith on the Dissecting Table: The Strangler Fig Pattern in Action @ RivieraDev France 2023

Abstract:

Many existing companies cannot just start over on the green field. Instead, significant maintenance efforts are necessary for aged applications, which usually exhibit a monolithic architecture based on traditional, potentially outdated tech stacks. Companies willing to shift towards distributed architectures and modern technologies are struggling because they don't know where and how to start.

This talk briefly introduces the strangler fig pattern, which enables a smooth and step-wise transformation of monolithic applications into separate (micro)services. The main focus of this practical session is a demo scenario, showing step-by-step how to extract a particular part of an existing monolith into a separate service. During the demo, we will also get in touch with popular technologies such as Kubernetes, Apache Kafka, Debezium, and MongoDB.

This session helps you to understand what it means to apply the strangler fig pattern to extract functionality from your monoliths. The learnings will empower you to gradually evolve existing applications into a (micro)service architecture and an en-vogue tech stack.

Demo Repository: https://github.com/hpgrahsl/sfp-rivieradev23

Video Recording: Sessions haven't been recorded.

Hans-Peter Grahsl

July 12, 2023
Tweet

More Decks by Hans-Peter Grahsl

Other Decks in Programming

Transcript

  1. A Monolith on the Dissecting Table: The Strangler Fig Pattern

    in Action @hpgrahsl | #RivieraDev @rivieradev - France | 2023
  2. ! It's me ... Hans-Peter • Developer ! Advocate @

    Red Hat • Open-Source Enthusiast • 4x Confluent Community Catalyst • MongoDB Community Champion since 2020 • based in Graz, Austria " @hpgrahsl | #RivieraDev @rivieradev - France | 2023 3
  3. ! What about the big rewrite and a hard cut-over?

    ! @hpgrahsl | #RivieraDev @rivieradev - France | 2023 5
  4. "If you do a big bang rewrite, the only thing

    you're certain of is a big bang." — Martin Fowler @hpgrahsl | #RivieraDev @rivieradev - France | 2023 7
  5. Migration Goal • gradually evolve from old into new •

    support (temporary) coexistence • avoid risky big bang rewrite @hpgrahsl | #RivieraDev @rivieradev - France | 2023 8
  6. Open-Source Change-Data-Capture • captures data changes by tapping into DB's

    TX log • change events propagated via Apache Kafka / Connect @hpgrahsl | #RivieraDev @rivieradev - France | 2023 19
  7. CDC Pipeline Concern #1 We're leaking our data / domain

    model. I want an anti-corruption layer. @hpgrahsl | #RivieraDev @rivieradev - France | 2023 26
  8. CDC Pipeline Concern #2 But this only replicates data "row

    by row". I might need aggregate structures. @hpgrahsl | #RivieraDev @rivieradev - France | 2023 28
  9. Wrapping Up • incremental migration → baby steps • pause

    / stop without losing spent $$$ • extraction steps ideally reversible @hpgrahsl | #RivieraDev @rivieradev - France | 2023 33
  10. ! Give it a try! " • Strangler Fig Pattern

    Demo https://bit.ly/sfp-rivdev23 @hpgrahsl | #RivieraDev @rivieradev - France | 2023 36
  11. Links & Resources • Demo Repository https://github.com/hpgrahsl/sfp-rivieradev23 • Developer Sandbox

    for Openshift https://developers.redhat.com/developer-sandbox • Debezium Website https://debezium.io • Quarkus https://quarkus.io @hpgrahsl | #RivieraDev @rivieradev - France | 2023 38