ОГЛЯД ПІДХОДІВ ДО ОРГАНІЗАЦІЇ БІЗНЕС-ЛОГІКИ В ПОБУДОВІ МІКРОСЕРВІСНИХ СИСТЕМ

Ключові слова: мікросервісна архітектура, бізнес-логіка, предметно орієнтоване проєктування, DDD, event sourcing, CQRS, патерни

Анотація

Натепер питання побудови архітектури мікросервісів стає все більш актуальним, оскільки даний тип архітектури дозволяє проєктувати системи з низькою зв’язністю, які мають низку переваг перед монолітами: можливість горизонтального масштабування, краще розділення системи на складові частини (сервіси), кожен окремий з яких простіше розвивати та підтримувати, можливість більш ефективного використання ресурсів та інші. Зазначені вище та низка інших причин приводять до зростання популярності такого типу архітектури в індустрії, що позначається на виборі архітекторів та інженерів програмного забезпечення стосовно впровадження мікросервісної архітектури як у побудові нових систем, так і як вектора розвитку успадкованих монолітних систем, які все частіше переписуються на мікросервіси. Проблематика, що стосується питань проєктування мікросервісних систем, має велику кількість різноманітних аспектів, одним із них є вибір організації бізнес-логіки разом із низкою супутніх патернів, технологій та інструментів. Вплив такого вибору неможливо переоцінити: бізнес-логіка є реалізацією предметної області, у якій працює бізнес, тому вибір відповідних патернів і підходів до її організації має прямий вплив не тільки на якість реалізації системи, а й на вартість її розширення та підтримки в майбутньому. У статті розглядаються методи, принципи й інструменти, призначені для організації бізнес-логіки в мікросервісних системах, розглядаються патерни, призначені для використання в умовах простих і складних доменів, підходи до організації роботи з командами та запитами в системах, що використовують події. Значна увага приділяється парадигмі предметно орієнтованого проєктування, як найперспективнішій у застосуванні під час розроблення систем зі складною предметною областю.

Посилання

1. Richardson C. Microservices patterns: with examples in Java. Shelter Island, New York : Manning Publications, 2019.
2. Newman S. Building microservices: designing fine-grained systems, Second Edition. Beijing : O’Reilly Media, 2021.
3. Deursen S. van, Seemann M. Dependency injection: principles, practices, patterns. Shelter Island : Manning, 2019.
4. Lieser S. Clean Architecture vs. Onion Architecture vs. Hexagonal Architecture, CCD Akademie. URL: https://ccd-akademie.de/en/clean-architecture-vs-onion-architecture-vs-hexagonale-architektur/
5. Palermo J. The Onion Architecture : part 1. Programming with Palermo. URL: https://jeffreypalermo.com/2008/07/the-onion-architecture-part-1/
6. Fowler M. Patterns of enterprise application architecture, Nineteenth printing. in The Addison-Wesley Signature Series. Boston ; San Francisco ; New York ; Toronto ; Montreal ; London ; Munich ; Paris ; Madrid ; Capetown : Addison-Wesley, 2013.
7. Khononov V. Learning domain-driven design: aligning software architecture and business strategy. Beijing ; Boston ; Farnham ; Sebastopol ; Tokyo : O’Reilly, 2022.
8. Mota I. Anaemic Domain Model vs. Rich Domain Model. Ensono. Insights + News. URL: https://www.ensono.com/insights-and-news/expert-opinions/anaemic-domain-model-vs-rich-domain-model/
9. Wlaschin S. Domain modeling made functional: tackle software complexity with domain-driven design and F♯, Version: P1.0. Raleigh, North Carolina : The Pragmatic Bookshelf, 2018.
10. Fowler M. Domain Driven Design. URL: https://martinfowler.com/bliki/DomainDrivenDesign.html
11. Esther D. Behavior-Driven Development for Domain-Driven Design in Modern Software. URL: https://www.researchgate.net/publication/386136826_Behavior-Driven_Development_for_Domain-Driven_Design_in_Modern_Software
12. Verraes M., Wirfs-Brock R. Splitting a Domain Across Multiple Bounded Contexts. URL: https://verraes.net/2021/06/split-domain-across-bounded-contexts/
13. Vural H., Koyuncu M. Does Domain-Driven Design Lead to Finding the Optimal Modularity of a Microservice? IEEE Access. 2021. Vol. 9. P. 32721–32733. DOI: 10.1109/ACCESS.2021.3060895
14. Kapferer S., Zimmermann O. Domain-Driven Architecture Modeling and Rapid Prototyping with Context Mapper. Model-Driven Engineering and Software Development / S. Hammoudi, L. F. Pires, B. Selić (Eds.). Communications in Computer and Information Science. Vol. 1361. Cham : Springer International Publishing, 2021. P. 250–272. DOI: 10.1007/978-3-030-67445-8_11
15. Evans E. Domain-driven design: tackling complexity in the heart of software. Boston : Addison-Wesley, 2004.
16. Fowler M. DDD Aggregate. URL: https://martinfowler.com/bliki/DDD_Aggregate.html
17. Khorikov V. Domain model purity vs. domain model completeness (DDD Trilemma). Enterprise Craftsmanship. URL: https://enterprisecraftsmanship.com/posts/domain-model-purity-completeness 18. Özkan O., Babur Ö., Van Den Brand M. Refactoring with domain-driven design in an industrial context: An action research report. Empir Software Eng. Jul. 2023. Vol. 28. № 4. P. 94. DOI: 10.1007/s10664-023-10310-1
19. Barbini U. From objects to functions: build your software faster and safer with functional programming and Kotlin. Dallas, Texas : The Pragmatic Bookshelf, 2023.
20. Colley D., Stanier C., Asaduzzaman M. Investigating the Effects of Object-Relational Impedance Mismatch on the Efficiency of Object-Relational Mapping Frameworks. Journal of Database Management. Oct. 2020. Vol. 31. № 4. P. 1–23. DOI: 10.4018/JDM.2020100101
21. Khorikov V. OOP, FP, and object-relational impedance mismatch. Enterprise Craftsmanship. URL: https://enterprisecraftsmanship.com/posts/oop-fp-and-object-relational-impedance-mismatch/
22. Fowler M. Retroactive Event. URL: https://martinfowler.com/eaaDev/RetroactiveEvent.html
23. Fowler M. Parallel Model. URL: https://martinfowler.com/eaaDev/ParallelModel.html
24. Lima S., Correia J., Araujo F., Cardoso J. Improving observability in Event Sourcing systems. Journal of Systems and Software. Nov. 2021. Vol. 181. P. 111015. DOI: 10.1016/j.jss.2021.111015
25. Overeem M., Spoor M., Jansen S., Brinkkemper S. An empirical characterization of event sourced systems and their schema evolution – Lessons from industry. Journal of Systems and Software. Aug. 2021. Vol. 178. P. 110970. DOI: 10.1016/j.jss.2021.110970
Опубліковано
2025-12-31
Як цитувати
Бейрак, Д. Я., & Вакалюк, Т. А. (2025). ОГЛЯД ПІДХОДІВ ДО ОРГАНІЗАЦІЇ БІЗНЕС-ЛОГІКИ В ПОБУДОВІ МІКРОСЕРВІСНИХ СИСТЕМ. Computer Science and Applied Mathematics, (2), 36-46. https://doi.org/10.26661/2786-6254-2025-2-05
Розділ
РОЗДІЛ II. ІНЖЕНЕРІЯ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ