

Op de hoogte blijven van de nieuwste trends en best practices is cruciaal in de snel evoluerende wereld van softwareontwikkeling. Innovatieve benaderingen zoals EventSourcing en CQRS kunnen ontwikkelaars in staat stellen flexibele, schaalbare en veilige systemen te bouwen. OpDomain-Driven Design (DDD) Europe 2022 gaf Paolo Banfi een verhelderende lezing over deze twee technieken.
Wat is EventSourcing?
EventSourcing is een innovatieve benadering van gegevensopslag die prioriteit geeft aan de historische context van een object. In plaats van alleen de huidige status van een object vast te leggen, slaat EventSourcing alle gebeurtenissen op die tot die status hebben geleid.
Het creëren van een goed ontworpen event model is cruciaal bij het implementeren van EventSourcing. Het eventmodel definieert de events die zullen worden opgeslagen en hoe ze zullen worden gestructureerd. Zorgvuldige planning van het eventmodel is cruciaal omdat het het gemak van gegevensanalyse beïnvloedt. Het eventmodel aanpassen na de implementatie kan lastig zijn, dus het is belangrijk om het vanaf het begin goed te doen.
Wat is CQRS
CQRS (Command Query Responsibility Segregation) is een techniek die lees- en schrijfbewerkingen in een systeem scheidt om de efficiëntie en begrijpelijkheid te verbeteren. In een traditionele architectuur interageert een applicatie met een database door middel van een enkele interface. CQRS scheidt echter de lees- en schrijfbewerkingen, die elk door verschillende componenten worden afgehandeld.
EventSourcing en CQRS combineren
Een van de voordelen van het combineren van EventSourcing en CQRS is dat het bijhouden van wijzigingen en het controleren van gegevens eenvoudiger wordt. Door alle gebeurtenissen bij te houden die tot een bepaalde toestand hebben geleid, is het eenvoudiger om veranderingen in de loop van de tijd bij te houden. Dit kan vooral nuttig zijn voor toepassingen die auditing of regelgeving vereisen.
Bovendien biedt het scheiden van lees- en schrijfbewerkingen op deze manier verschillende voordelen. Ten eerste optimaliseert het het systeem door het verminderen van conflicten en het verbeteren van de schaalbaarheid. Ten tweede vereenvoudigt het het systeem door de zorgen van elke kant te isoleren. Ten slotte verbetert het de beveiliging van gevoelige gegevens door de toegang tot de schrijfkant van het systeem te beperken.
Een ander belangrijk voordeel van het implementeren van CQRS is de eliminatie van de noodzaak om de hele gebeurtenisstroom te doorlopen om de huidige status te bepalen. Door lees- en schrijfoperaties te scheiden, kan de leeszijde van het systeem speciale modellen onderhouden die geoptimaliseerd zijn voor het bevragen en ophalen van specifieke gegevensweergaven. Als gevolg hiervan is het niet langer nodig om de hele gebeurtenisstroom te doorlopen wanneer het systeem om de laatste status wordt gevraagd. In plaats daarvan kunnen de geoptimaliseerde leesmodellen efficiënt de benodigde gegevens leveren, wat leidt tot betere prestaties en minder vertraging.

Wanneer EventSourcind en CQRS gebruiken?
Het is belangrijk op te merken dat EventSourcing en CQRS niet voor elk project geschikt zijn. Het implementeren van EventSourcing en CQRS kan vooraf meer werk vergen dan traditionele benaderingen. Ontwikkelaars moeten tijd investeren in het begrijpen en effectief implementeren van deze benaderingen. Voor systemen die een hoge schaalbaarheid, flexibiliteit of beveiliging vereisen, kunnen EventSourcing en CQRS echter een uitstekende oplossing bieden.
De beslissing om CQRS of EventSourcing te gebruiken voor uw toepassing hangt af van verschillende factoren, zoals de complexiteit van uw domeinmodel, de schaalbaarheidsvereisten en de behoefte aan een uitgebreid controlespoor van systeemgebeurtenissen.
Ontwikkelaars moeten de specifieke behoeften van hun project evalueren voordat ze beslissen of ze deze benaderingen gaan gebruiken.
- CQRS is vooral nuttig voor applicaties met complexe domeinmodellen die verschillende gegevensweergaven vereisen voor verschillende use cases. Door de lees- en schrijfbewerkingen in afzonderlijke modellen te scheiden, kun je de leesbewerkingen optimaliseren voor prestaties en schaalbaarheid, terwijl je toch een enkele bron van waarheid voor de gegevens behoudt.
- Event Sourcing is ideaal als je een volledige en nauwkeurige registratie van alle wijzigingen in je systeem in de loop van de tijd moet bijhouden. Door elke gebeurtenis vast te leggen en op te slaan in een alleen-append log, kun je een onveranderlijke audit trail creëren die gebruikt kan worden voor debugging, compliance en andere doeleinden.
Conclusie
De combinatie van EventSourcing en CQRS kan ontwikkelaars aanzienlijke voordelen bieden, zoals meer flexibiliteit, schaalbaarheid en beveiliging. Ze bieden een frisse benadering van softwareontwikkeling die ontwikkelaars kan helpen toepassingen te maken die beter aansluiten bij de behoeften van moderne organisaties.
Als je meer wilt weten over EventSourcing en CQRS, dan zijn er online veel uitstekende bronnen beschikbaar. Conferenties en lezingen zoals DDD Europe zijn ook uitstekende gelegenheden om op de hoogte te blijven van de laatste trends en best practices in softwareontwikkeling. Zorg ervoor dat je deze kansen niet mist als je voorop wilt blijven lopen!
De volgende editie van Domain-Driven Design Europe vindt plaats in Amsterdam van 5 tot 9 juni 2023.
Wist je dat ACA Group een van de trotse sponsors is van DDD Europe?
What others have also read


Enlit is Europa’s grootste event rond energietransitie. Vanuit ACA Group tekenden Tom Claus and Sven Sambaer present. Ze ontmoetten klanten en partners, legden hun oor te luister en hielden hun ogen open voor de laatste trends. Een verslag over het energie-trilemma, de autobatterij als bewaker van de balans in het distributienet en smart metering 2.0.
Lees verder

Maak het concreet voor alle belanghebbenden Data Mesh wordt vaak gezien als iets zeer abstract en theoretisch, waardoor belanghebbenden onzeker zijn over de precieze implicaties en mogelijke oplossingen ervan. Daarom willen we het bij ACA Group zo concreet mogelijk maken voor business stakeholders, technische stakeholders en andere belanghebbenden in de organisatie. Wij raden aan om drie belangrijke uitdagingen tegelijkertijd aan te pakken: IDENTIFICEER BEDRIJFSWAARDE – Definieer hoe Data Mesh exact bijdraagt aan de bedrijfswaarde door data als een product te beschouwen. ORGANISEER TEAMS – Specificeer de rol van elk team, teamlid en persona binnen de context van Data Mesh. BUILD PLATFORM – Laat zien hoe data mesh de technische architectuur beïnvloedt. Uitdaging 1: De bedrijfswaarde van Data Mesh identificeren Een van de eerste uitdagingen bij de introductie van Data Mesh is het uitleggen en bewijzen van de waarde voor de business. Bij ACA Group beginnen we met het identificeren van potentiële dataproducten, domeinen en use cases. Dit proces is gebaseerd op zakelijke input en resulteert in een dataproductlandschap. De figuur hieronder geeft een voorbeeld vanuit een e-commerce bedrijf (rechthoeken zijn applicaties, hexagonen zijn data producten, kleuren geven domeinen die ownership nemen). Dit landschap dient als navigatiekaart, inspireert nieuwe innovatieve zakelijke ideeën en laat de meerwaarde zien die Data Mesh voor de organisatie kan bieden. Door te laten zien hoe Data Mesh nieuwe mogelijkheden kan creëren, verduidelijken we de relevantie ervan voor zakelijke belanghebbenden. Data Mesh Oplossingen Afstemmen op Organisatiedoelen Om het maximale uit Data Mesh te halen, is afstemming op de algemene doelstellingen en strategie van de organisatie van het grootste belang. Het is cruciaal om ervoor te zorgen dat de investering in technologie en processen aansluit bij de bredere bedrijfsdoelstellingen. Door deze afstemming blijft de steun en het momentum behouden, wat cruciaal is voor het succes van een Data Mesh-initiatief. Data Mesh Opportuniteiten Identificeren met Gamestorming Bij ACA Group passen we gamestorming-technieken toe om domeinen en dataproducten te ontdekken. Dit proces begint met de identificatie van business mogelijkheden en datagebruiksscenario's. Dat doen we aan de hand van workshops, zoals het in kaart brengen van de impact. Door Data Mesh op deze aspecten af te stemmen, identificeren we een dataproductlandschap vanuit twee perspectieven. Een inventarisatie van beschikbare data en potentiële dataproducten inspireert en genereert nieuwe zakelijke ideeën, terwijl de gewenste zakelijke impact en doelstellingen helpen bij het identificeren van de benodigde data en dataproducten. Uitdaging 2: Teams Organiseren en Individuen Empoweren Data Mesh gaat niet alleen over technologie; het gaat over het transformeren van de manier waarop teams en teamleden binnen de organisatie opereren. ACA Group gelooft in het effectief organiseren van teams om de kracht van Data Mesh te benutten. We gaan in gesprek met bestaande teams en teamleden en positioneren hun waardevolle rollen en expertise binnen een Data Mesh-teamorganisatie. Meestal zijn hierbij platformteams, domeinteams, faciliterende teams en een gefedereerd governanceteam betrokken. Daarnaast onderzoeken we de verschillende gebruikerstrajecten en ervaringen voor elke persona, om ervoor te zorgen dat Data Mesh een positieve invloed heeft op de organisatie, haar mensen en hun rollen. Uitdaging 3: De technische architectuur opzetten Het invoeren van Data Mesh is een transformerend traject voor elke organisatie. Door de uitdagingen op te splitsen in uitvoerbare stappen, zoals ACA Group doet, kan je Data Mesh tastbaarder maken, de waarde ervan verduidelijken en de oplossing afstemmen op de doelstellingen van je organisatie. Deze incrementele acties dienen om het mysterie weg te nemen rond Data Mesh, waardoor het begrijpelijk wordt voor een breed scala aan stakeholders en het pad wordt geëffend voor goed geïnformeerde beslissingen. Het omarmen van Data Mesh betekent het omarmen van de toekomst van datamanagement, en biedt een scala aan opportuniteiten voor je organisatie. Dit traject gaat over het praktisch realiseren van Data Mesh en tegelijkertijd zorgen voor afstemming op je organisatiedoelstellingen. Conclusie Het invoeren van Data Mesh is een transformerend traject voor elke organisatie. Door de uitdagingen op te splitsen in uitvoerbare stappen, zoals ACA Group doet, kan je Data Mesh tastbaarder maken, de waarde ervan verduidelijken en de oplossing afstemmen op de doelstellingen van je organisatie. Deze incrementele acties dienen om het mysterie weg te nemen rond Data Mesh, waardoor het begrijpelijk wordt voor een breed scala aan stakeholders en het pad wordt geëffend voor goed geïnformeerde beslissingen. Het omarmen van Data Mesh betekent het omarmen van de toekomst van datamanagement, en biedt een scala aan opportuniteiten voor je organisatie. Dit traject gaat over het praktisch realiseren van Data Mesh en tegelijkertijd zorgen voor afstemming op je organisatiedoelstellingen. Nieuwsgierig naar wat Data Mesh nog meer te bieden heeft? Ontdek het hier ✅
Lees verder

Liferay DXP is de afgelopen jaren uitgegroeid tot een veelgebruikt portaalplatform voor het bouwen en beheren van geavanceerde digitale ervaringen. Organisaties gebruiken het voor intranetten, klantportalen, self-service platforms en meer. Hoewel Liferay DXP bekend staat om zijn gebruiksvriendelijkheid, kan de standaard zoekfunctionaliteit verder worden geoptimaliseerd om te voldoen aan de moderne verwachtingen van gebruikers. Om dit aan te pakken heeft ACA een geavanceerde oplossing ontwikkeld die de standaard zoekmogelijkheden van Liferay aanzienlijk verbetert. Lees er alles over in deze blog. Zoeken in Liferay: niet altijd efficiënt Traditioneel waren organisatorische zoekopdrachten gebaseerd op individuele trefwoorden . Intranetgebruikers zochten bijvoorbeeld op termen als "verlof" of "vergoeding" om de informatie te vinden die ze nodig hadden. Dit resulteerde vaak in een overvloed aan resultaten en documenten , waardoor gebruikers deze handmatig moesten uitpluizen om relevante informatie te vinden - een tijdrovend en inefficiënt proces dat de gebruikerservaring belemmert. De manier waarop gebruikers zoeken is veranderd De opkomst van AI-tools zoals ChatGPT heeft de manier waarop mensen naar informatie zoeken veranderd. Dit is ook zichtbaar in online zoekmachines zoals Google, waar gebruikers hun zoekopdrachten steeds vaker formuleren als complete vragen. Bijvoorbeeld: "Hoe vraag ik verlof aan?" of "Op welke reiskostenvergoeding heb ik recht?" . Om aan deze veranderende zoekbehoeften te voldoen, moet de zoekfunctionaliteit niet alleen snel zijn, maar ook natuurlijke taal kunnen begrijpen. Helaas schiet de standaard zoekfunctie van Liferay op dit gebied tekort. ACA ontwikkelt geavanceerde AI-gestuurde zoekfunctie voor Liferay Om tegemoet te komen aan het hedendaagse zoekgedrag, heeft ACA een geavanceerde oplossing ontwikkeld voor Liferay DXP 7.4 installaties: Liferay AI Search . Door gebruik te maken van het GPT-4o taalmodel zijn we erin geslaagd om de standaard zoekmogelijkheden van Liferay aanzienlijk te verbeteren. GPT-4o is een state-of-the-art taalmodel getraind op een uitgebreide dataset van tekstuele informatie. Door GPT-4o in onze oplossing te integreren, hebben we de zoekalgoritmes aangepast om complexere zoekopdrachten te verwerken , inclusief vragen in natuurlijke taal. Hoe werkt Liferay AI Search? Gesloten dataset Het AI model heeft alleen toegang tot data binnen de gesloten Liferay omgeving. Dit zorgt ervoor dat alleen relevante documenten - zoals die uit de Bibliotheek en Mediabibliotheek - toegankelijk zijn voor het model. Beheerders controle Beheerders kunnen bepalen welke content wordt opgenomen in de GPT-4o dataset, waardoor ze de nauwkeurigheid en relevantie van zoekresultaten verder kunnen optimaliseren. Afhankelijk van het profiel van de gebruiker worden de antwoorden en zoekresultaten afgestemd op de informatie waartoe hij of zij toegang heeft. Directe antwoorden Dankzij de GPT-4o integratie biedt de zoekfunctionaliteit niet alleen traditionele resultaten, maar ook directe antwoorden op gebruikersvragen. Hierdoor hoeven gebruikers niet meer door zoekresultaten te spitten om de specifieke informatie te vinden die ze nodig hebben. De vergelijking hieronder illustreert het verschil tussen de zoekresultaten van Liferay DXP's standaard zoekfunctie en de verbeterde resultaten van ACA's Liferay AI Search. Wilt u Liferay AI Search in actie zien? Bekijk de demo hieronder of via deze link! Voordelen van Liferay AI Search Of u nu Liferay DXP gebruikt voor uw klantenplatform of intranet, Liferay AI Search biedt tal van voordelen voor uw organisatie: Verhoogde gebruikerstevredenheid: Gebruikers kunnen snel precieze antwoorden vinden op hun vragen. Verbeterde productiviteit: Er wordt minder tijd besteed aan het zoeken naar informatie. Verbeterde kennisdeling: Belangrijke informatie is makkelijker te vinden en te delen. Conclusie Met Liferay AI Search verhoogt ACA de zoekfunctionaliteit van Liferay DXP om te voldoen aan de moderne verwachtingen van gebruikers. Door GPT-4o te integreren in Liferay DXP 7.4 levert deze oplossing niet alleen traditionele zoekresultaten, maar ook directe, relevante antwoorden op complexe zoekopdrachten in natuurlijke taal. Dit leidt tot een snellere, gebruiksvriendelijkere en efficiëntere zoekervaring die zowel de productiviteit als de gebruikerstevredenheid aanzienlijk verhoogt. Klaar om de zoekfunctionaliteit van uw Liferay platform te optimaliseren Neem vandaag nog contact met ons op!
Lees verderWant to dive deeper into this topic?
Get in touch with our experts today. They are happy to help!

Want to dive deeper into this topic?
Get in touch with our experts today. They are happy to help!

Want to dive deeper into this topic?
Get in touch with our experts today. They are happy to help!

Want to dive deeper into this topic?
Get in touch with our experts today. They are happy to help!

