Supporting Migration to Microservices with Domain Driven Design

Abstract

Uma empresa e-commerce com um marketplace disponível para todo o mundo tem crescido significativamente durante os anos, com mais clientes interessados e um aumento nas vendas. Com isto, o software cresceu com a tendência, numa arquitetura a nível monolítica. A área de processamento de encomendas foi a que se mais sentiu este aumento, com um serviço monolítico que integra múltiplas equipas de desenvolvimento com âmbitos de negócio abrangentes. A equipa apelidada de “ST” é uma das participantes, tendo como responsabilidades, a implementação e manutenção do software para Ocorrências em Encomendas e Devoluções. No entanto, para a equipa “ST” é cada vez mais complicado realizar alterações no seu software, visto que o domínio não é mais flexível, sendo uma tarefa difícil para os programadores, a sua compreensão e a sua evolução para novos requisitos de negócio. Aproveitando a tendência de evolução existente na plataforma, a equipa “ST” realizará uma migração do software de Ocorrências para uma arquitetura orientada a microserviços, com auxílio de Domain Driven Design, definindo os contextos limitados, desenhando os modelos de domínio, e implementando os respetivos serviços com a utilização de boas práticas de engenharia, como padrões de software. No final, os programadores da equipa “ST” com o auxílio dos seus conhecimentos, serão os responsáveis por fazer uma avaliação final da solução, de forma a perceber se esta mitigou os constrangimentos que causavam o problema enunciado.An e-commerce company with a marketplace available for all over the world has grown significantly over the years, having more interested customers increasing its sales. With this, software tended to expand in a monolithic way. The order processing is one of the areas that grew the most, with a monolithic service that integrates multiple development teams with business broad scopes. The team called “ST” is one of the participants, having the responsibility of implementing and maintain the software related to Order and Return Occurrences. However, for the “ST” team developers is increasingly difficult to change its software, since the domain is not flexible anymore, being a tough task for developers, its understanding and its evolution for new business requirements. Taking advantage of the evolution trend, existent on the platform, the “ST” will migrate the Occurrences software to a microservices oriented architecture, with the Domain Driven Design support, delineating its bounded contexts, drawing its domain models, and implementing the corresponding services with usage of good engineering practices, such as software patterns. Finally, the “ST” team developers, supported by their knowledge, are the responsible ones to evaluate the final implemented solution, in order to understand if it mitigates the constraints that caused the announced problem

    Similar works