Fala pessoal, tudo bem?
Como o nome "Strangler Pattern" foi citado no curso, eu fiquei curioso e tomei a liberdade de pesquisar sobre a sua origem. Particularmente, entender como surgiu esse termo me ajudou a fixar a ideia por trás desse padrão e espero que te ajude também.
Pois bem, acontece que "Strangler Pattern" vem de "Strangler Fig Pattern", que foi um termo popularizado por nada mais nada menos que Martin Fowler, cujo nome já foi citado neste curso e em milhares de outras fontes sobre engenharia de software (o cara é um gênio!)
Conforme ele explica, Fowler concebeu o termo durante uma viagem com a esposa para a Austrália, quando pensou em uma metáfora sobre a reescrita de sistemas críticos, comparando-a ao comportamento de uma família de árvores denominadas Strangler Figs (figueiras estranguladoras), que são encontradas por lá.
Esse tipo de árvore dá frutinhas com inúmeras sementes, que muitas vezes são depositadas nas copas de outras árvores por intermédio da alimentação de pássaros. Quando essas sementes encontram uma "cama" de matéria orgânica e água suficientes, elas germinam e suas raízes crescem do alto até se estabelecerem no solo, obtendo ainda mais nutrientes. O resultado desse processo é que as inúmeras raízes acabam "roubando" a luz solar e os nutrientes da árvore hospedeira, que ocasionalmente pode "morrer estrangulada".
Transpondo essa analogia de forma bem simplificada para o nosso contexto de microsserviços, temos:
- iniciamos com uma única aplicação monolítica (árvore hospedeira);
- aos poucos, desenvolvemos microsserviços (raízes) para substituir responsabilidades individuais do sistema original;
- eventualmente, esse novo ecossistema de microsserviços crescerá de forma suficiente para substituir todo o sistema original, que se torna obsoleto, ou seja, é "estrangulado".
Este vídeo (YouTube) demonstra como uma das espécies desse tipo de árvore se parece.
Referências
- https://martinfowler.com/bliki/StranglerFigApplication.html
- https://www.naplesgarden.org/strangler-figs-not-always-a-bad-wrap/
- https://www.youtube.com/watch?v=kVpVbS9CJIk
- https://www.ibm.com/garage/method/practices/code/chunking-strategy-strangler-pattern/
- https://developer.ibm.com/articles/cl-strangler-application-pattern-microservices-apps-trs/