Toepassing van CQRS in combinatie met NoSQL

More Info
expand_more

Abstract

In dit onderzoek hebben we de voor- en nadelen van het gebruik van NoSQL databases en het Command Query Responsibility Segregation(CQRS) met Event Sourcing(ES) pattern onderzocht. In het onderzoek dat ingaat op de verschillende NoSQL databases zijn een groot aantal databases geselecteerd voor nader onderzoek. De vergelijking is gemaakt op basis van de kwaliteitsattributen relevant voor E.Novation. Uit dit onderzoek is MongoDB als beste NoSQL database naar voren gekomen. Aan de hand van de twee verschillende projecten, waarbij de CQRS/ES variant gebruik maakt van MongoDB en de ander gebaseerd op een LA met een relationele database, is een vergelijkend onderzoek gedaan. In dit onderzoek is er geen significant verschil in ontwikkeltijd geconstateerd. Bij een complexer systeem zal het toevoegen van functionaliteit waarschijnlijk minder tijd kosten in een CQRS/ES systeem. De complexiteit van het CQRS/ES systeem is naar verwachting namelijk lager, waarbij er eenvoudig nieuwe componenten op de command- en eventbus aangesloten kunnen worden zonder kennis van de rest van het systeem. Theoretisch zitten er veel voordelen aan het gebruik van MongoDB binnen een CQRS/ES systeem. MongoDB is een flexibele database, daaruit ontstaan verschillende voordelen specifiek voor de werking van CQRS/ES. De keuze voor CQRS/ES met MongoDB heeft enige gevolgen voor de ontwikkeling en het onderhoud van een applicatie. Zo zal er door de ontwikkelaars kennis opgedaan moeten worden over deze systemen voordat er effectief mee ontwikkeld kan worden en zullen beheerders kennis op moeten doen om de beheertaken uit te kunnen voeren op de gewijzigde systemen. De afweging of CQRS/ES en MongoDB een geschikte keus is hangt sterk af van de specifieke applicatie. Wanneer de te bouwen applicatie goed aansluit op de event-driven werkwijze van het Axon Framework zal het meerwaarde kunnen bieden. Indien dit niet direct het geval is zal een meer traditionele opzet meer geschikt zijn.