PRO Workshop (API): Killing a Giant - a Practical Guide Through the Martin Fowler's Strangler Fig Pattern

Branislav Bujišić, Director of Engineering

Branislav Bujisic is a software developer and Director of Engineering at Originally from Serbia, having a Hungarian mother and Montenegrin father, he lives in Germany and works for an English-speaking, yet French company. This gives him quite a funny accent, which he loves sharing by helping clients use and understand the product via demos and trainings. His technical interests lie in service-oriented architecture, automation of everything, and best practices in development, deployment, and life-cycle management. Away from the command line he is a family guy with two beautiful daughters; passionate about good craft beers, fine foods, travel, and shiny new technology. 

Back in 2019, our company was preparing for a period of fast growth. One of the key blockers to that growth was a monolithic application called Accounts. Built initially around 2014 as a rapidly developed proof of concept, it quickly became a central piece for the customer interaction, a billing system, an auth server, a support ticketing system, the project lifecycle management system. The technical debt grew exponentially with every new feature added. The system needed to be replaced.

Martin Fowler described an interesting solution for a practically zero-downtime migration project from a monolithic application to -- something else. Instead of replacing an app with a single big bang, let’s build the new application around the existing one, and let them slowly take over its responsibilities until we’re ready to just delete it entirely. The concept was stolen from a natural phenomenon of Australian strangler figs growing around a host tree until they kill it.

What could possibly go wrong with such an approach, you may ask yourself. Well -- as we learned in the last couple of years -- quite a lot of things! To name a few: shared state between the legacy and the replacement application, designing the stopgap communication between the applications, balancing the development of the new features with the migration of the existing ones.

Join me for the session where we’ll discuss the theory and practice of the Strangler Vine Pattern around a Drupal 7 monolith, with a special focus on all the embarrassing errors we made along the way.