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

A Monolith on the Dissecting Table: The Strangler Fig Pattern in Action @ DevBcn Spain 2023

A Monolith on the Dissecting Table: The Strangler Fig Pattern in Action @ DevBcn Spain 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-devbcn23

Video Recording: pending...

Hans-Peter Grahsl

July 03, 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 | #DevBcn @dev_bcn - Barcelona, Spain | 2023
  2. ! It's me ... Hans-Peter • Developer ! Advocate @

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

    ! @hpgrahsl | #DevBcn @dev_bcn - Barcelona, Spain | 2023 5
  4. "If you do a big bang rewrite, the only thing

    you're certain of is a big bang." — Martin Fowler @hpgrahsl | #DevBcn @dev_bcn - Barcelona, Spain | 2023 7
  5. Migration Goal • gradually evolve from old into new •

    support (temporary) coexistence • avoid risky big bang rewrite @hpgrahsl | #DevBcn @dev_bcn - Barcelona, Spain | 2023 9
  6. Open-Source Change-Data-Capture • captures data changes by tapping into DB's

    TX log • change events propagated via Apache Kafka / Connect @hpgrahsl | #DevBcn @dev_bcn - Barcelona, Spain | 2023 20
  7. Open-Source Change-Data-Capture • captures data changes by tapping into DB's

    TX log • change events propagated via other messaging systems @hpgrahsl | #DevBcn @dev_bcn - Barcelona, Spain | 2023 21
  8. CDC Pipeline Concern #1 We're leaking our data / domain

    model. I want an anti-corruption layer. @hpgrahsl | #DevBcn @dev_bcn - Barcelona, Spain | 2023 30
  9. CDC Pipeline Concern #2 But this only replicates data "row

    by row". I might need aggregate structures. @hpgrahsl | #DevBcn @dev_bcn - Barcelona, Spain | 2023 33
  10. Wrapping Up • incremental migration → baby steps • pause

    / stop without losing spent $$$ • extraction steps ideally reversible @hpgrahsl | #DevBcn @dev_bcn - Barcelona, Spain | 2023 36
  11. ! Let's stay in touch ! @hpgrahsl @hpgrahsl | #DevBcn

    @dev_bcn - Barcelona, Spain | 2023 38
  12. ! Give it a try! " • Strangler Fig Pattern

    Demo https://bit.ly/sfp-devbcn23 @hpgrahsl | #DevBcn @dev_bcn - Barcelona, Spain | 2023 39
  13. Links & Resources • Demo Repository https://github.com/hpgrahsl/sfp-devbcn23 • Developer Sandbox

    for Openshift https://developers.redhat.com/developer-sandbox • Debezium Website https://debezium.io • Quarkus https://quarkus.io @hpgrahsl | #DevBcn @dev_bcn - Barcelona, Spain | 2023 41