A.V. Rodionov – Ph.D.(Eng.), Associate Professor, Department «Information Systems and Networks», Kaluga branch of the Bauman MSTU
E-mail: andviro@gmail.com
V.E. Drach – Ph.D.(Eng.), Associate Professor,
Department «Design and manufacturing of electronic equipment», Kaluga branch of the Bauman MSTU E-mail: drach@bmstu-kaluga.ru
V.I. Shevela – Master Student,
Department «Information Systems and Networks», Kaluga branch of the Bauman MSTU E-mail: vladshevela@gmail.com
A novel approach for state storage in cloud-native services based on extensible storage of full sequence of actions on domain objects is presented. The common approach is based on regular data updates, that has major constraints that complicate its applications in modern cloud computing systems, for example introducing cluster-wide transactions that heavily impact overall system performance. The aim of this work is to review the advantages of novel technology of data processing against the traditional methods that becoming obsolete and to demonstrate viability of its applications to wider developer audience.
The new approach presented by Martin Fowler and Microsoft allows using the database as journalling system with the ability to restore state of domain objects at arbitrary moment of time. A separate component sends event stream that imperatively describe all data manipulations to event storage. It also should be noted that applications that generate events are decoupled from systems that subscribe to those events, following the principle of command-query responsibility segregation. It allows arbitrary development in business domain without sufficient modifications to system core. In such a system, data objects that are published by event store are used to maintain materialized object states while the actions of applications modify them. They also are allow to integrate with external application systems through traditional remote procedure calls or other methods. An example of materialization of the event stream that integrate events with external systems and applications is presented in this work, and replaying of events for projections of current state of system is discussed.
The presented approach allows to increase data consistency in high-load systems and alleviate the need to synchronize data sequence on the server, while simultaneously increasing performance, scalability and lowering system latency. Consistency of event store is a requrement in this case, because it represents the order of events that affect the domain entities. Higher consistency is an additional benefit in financial systems, hardware remote control and other applications with high degree of responsibility.
The organization of data model as an event store presents wide opportunities in development of information systems and allows to achieve high degree of compatibility with business logic in application domain, effectively implementing principles of domain-driven design.
- Monakhov D.N. Oblachnye tekhnologii. M.: Maks Press. 2016. 128 s.
- Microsoft Azure. Event Sourcing pattern. Azure Architecture Center. URL = https://docs.microsoft.com/en-us/azure/architecture /patterns/event-sourcing ( 13 maya 2019).
- Mitch T. Znakomstvo s Microsoft Azure. M.: EKOM Pablisherz. 2014. 154 s.
- Folwer M. Event Sourcing. Capture all changes to an application state as a sequence of events. 2005. URL = https://martinfowler.com/eaaDev/EventSourcing.html (13 maya 2019).
- Gubarev V. Vvedenie v oblachnye vychisleniya i tekhnologii. M.: FShchILIS. 2017. 303 s.
- Drach V.E., Chukhraeva A.I., Rodionov A.V. Vybor sistemy upravleniya bazami dannykh dlya informatsionnoi sistemy promyshlennogo predpriyatiya. Elektromagnitnye volny i elektronnye sistemy. 2018. T. 23. № 3. S. 71−80.
- Drach V.E., Rodionov A.V., Chukhraev I.V. Programmirovanie s kontekstami i promezhutochnymi sloyami v primenenii k razrabotke HTTP-servisov. Radiopromyshlennost. 2016. № 4. S. 75−79.
- Fowler M. CQRS. 2011. URL = https://martinfowler.com/bliki/CQRS.html (13 maya 2019).
- Evans Erik. Predmetno-orientirovannoe proektirovanie (DDD): strukturizatsiya slozhnykh programmnykh sistem ( Domain-Driven Design: Tackling Complexity in the Heart of Software). M.: Vilyams. 2011. 448 s. ISBN 978-5-8459-1597-9.
- Rodionov A.V., Shevela V.I. Sobytiino orientirovannyi podkhod k proektirovaniyu raspredelennykh sistem. Innovatsii v nauke i praktike. Sb. statei po materialam XI Mezhdunar. nauchno-prakticheskoi konf. 29 oktyabrya 2018 . g. Barnaul. V 3-kh chastyakh. Ch.1. Ufa: Izdvo NIts Vestnik nauki. 2018. 274 s.