Dissecting our Legacy: The Strangler Fig Pattern with Apache Kafka, Debezium and MongoDB

by | Sep 22, 2021 | Voxxed Days Romania 2021

Gunnar Morling is a software engineer and open-source enthusiast by heart. He is leading the Debezium project, a distributed platform for change data capture (CDC). He is a Java Champion, the spec lead for Bean Validation 2.0 (JSR 380) and has founded multiple open source projects such as JfrUnit, Layrry, and MapStruct. Gunnar is an avid blogger and has spoken at a wide range of conferences like QCon, Java One, Devoxx, JavaZone, and many others. He’s based in Hamburg, Germany.

Hans-Peter Grahsl is a technical trainer for Java backend development and is responsible for the internal education department at NETCONOMY Consulting GmbH in Graz, Austria. As an independent engineer and consultant he is supporting customers during the conception and implementation of either cloud-based or on-premises data architectures using modern technology stacks and NoSQL data stores. He is also an associate lecturer for Software Engineering at CAMPUS 02 University of Applied Sciences and is speaking at tech-related and developer conferences. For his code contributions, conference talks and blog post writing at the intersection of the Apache Kafka and MongoDB ecosystems, Hans-Peter received the Confluent Community Catalyst award twice (2019-2020 & 2020-2021) and became one of the founding members of the MongoDB Champions Program in late 2020.

There is no denying the fact that many development efforts have to be spent on existing applications – legacy that is – which typically exhibit a monolithic design based on traditional tech stacks. Thus, affected companies strive to move towards distributed architectures and modern technologies. This talk introduces you to the strangler fig pattern, which aids a smooth and step-wise migration of monolithic applications into separate services. The practical part shows how to apply this pattern to extract parts of a fictional monolith into their own service by featuring:

* Apache Kafka, the de-facto standard for event streaming

* MongoDB and its official connector for Apache Kafka

* plus Debezium, a distributed open-source change data capture platform.

After this talk, you’ll have a better understanding of and a concrete blueprint for extracting functionality from your monoliths, thereby gradually evolving into a (micro)service architecture and an en vogue tech stack.