ПРО МІГРАЦІЮ ПРОЕКТУ З DOMAIN DRIVEN DESIGN АРХІТЕКТУРОЮ НА CQRS ТА EVENT SOURCING

Автор(и)

DOI:

https://doi.org/10.32782/IT/2024-1-7

Ключові слова:

доменно-орієнтований дизайн, CQRS, Event Sourcing, міграція архітектури.

Анотація

Стаття розглядає проблему міграції додатків, зокрема тих, що використовують архітектурний підхід Domain-Driven Design (DDD), до парадигми Command Query Responsibility Segregation (CQRS) з Event Sourcing. Довго існуючі системи часто стикаються з проблемами, пов'язаними з негнучкою, застарілою архітектурою та залежностями, що призводять до збільшення витрат на обслуговування. У роботі розглядаються переваги DDD та пропонується CQRS як життєздатна альтернатива, з акцентом на покращенні продуктивності та масштабованості. Основною метою роботи є оцінка безпечного шляху міграції проекту з DDD архітектурою на архітектуру CQRS та Event Sourcing, а також визначення дорожньої карти міграції. У статті проводиться експеримент, в якому здійснюється міграція тестового проекту, оцінюються час, зусилля та результати міграції. Методологія дослідження включає оцінку складності за допомогою метрики цикломатичної складності МакКейба та оцінку продуктивності через час виконання методів системи. Експеримент проводиться на типовому проекті – системі відстеження завдань. Результати реалізації CQRS показують збільшення кількості класів у чотири рази та кількості рядків коду на 50 відсотків. Однак це збільшення є обґрунтованим, оскільки воно покращує модульність, прозорість та керованість під час розробки, що в кінцевому підсумку полегшує обслуговування та, в цілому, значно підвищує продуктивність системи. Варто зазначити, що загальна цикломатична складність системи майже не змінилася. Підсумовуючи, стаття розглядає оцінку міграції проекту з DDD архітектурою на CQRS та Event Sourcing, поєднуючи теоретичні висновки з практичним експериментом. Вона надає цінну інформацію щодо переваг, недоліків та викликів при впровадженні архітектури CQRS в складні інформаційні системи.

Посилання

Evans E. Domain-Driven Design: Tackling Complexity in the Heart of Software, 2004. ISBN: 978-0321125217.

Vernon V. Implementing Domain-Driven Design, 2013. ISBN: 978-0321834577.

Fowler M. Bounded Context, 2014. URL: https://martinfowler.com/bliki/BoundedContext.html.

Young G. CQRS Documents by Greg Young, 2010. Pages: 50–52. URL: https://cqrs.files.wordpress.com/2010/11/cqrs_documents.pdf.

Betts D. Dominguez J. Melnik G. Simonazzi F. Subramanian M. Young G. Exploring CQRS and Event Sourcing: A journey into high scalability, availability, and maintainability with Windows Azure, 2013. ISBN: 978-1621140160.

Practical and focused guide for survival in post-CQRS world. Projections. URL: http://cqrs.wikidot.com/doc:projection.

Kenneth T. Introduction to Domain Driven Design, CQRS and Event Sourcing, 2013. URL: https://www.kenneth-truyers.net/2013/12/05/introduction-to-domain-driven-design-cqrs-and-event-sourcing/.

Salvatierra G. Mateos C. Crasso M. Legacy System Migration Approaches, 2013. DOI: 10.1109/TLA.2013.6533975.

Brodie M. L. Stonebraker M. Ai S. DARWIN: On the Incremental Migration of Legacy Information Systems, 1995.

Breitmayer M. Arnold L. La Rocca S. Reichert M. Deriving Event Logs from Legacy Software Systems, 2023. DOI: 10.1007/978-3-031-27815-0_30.

McCabe T. J. A Complexity Measure, 1976. DOI: 10.1109/TSE.1976.233837.

Vernon V. Effective Aggregate Design, 2011. Parts I – III.

Frolov M. TaskTrackingSystem repository on GitHub, 2023.

SonarCloud Online Code Review as a Service Tool. URL: https://sonarcloud.io/.

##submission.downloads##

Опубліковано

2024-06-12