Spelling suggestions: "subject:"event sourcing"" "subject:"avent sourcing""
1 |
Evaluation of using NoSQL databases in an event sourcing systemRothsberg, Johan January 2015 (has links)
An event store is a database for storing events in an event sourcing system. Instead of storing the current state, a very common way to persist data, an event sourcing system captures all changes to an application state as a sequence of events. Usually the event store is a relational database. Relational databases have several drawbacks and therefore NoSQL databases have been developed. The purpose of this thesis is to explore the possibility of using a NoSQL database in an event sourcing system. We will see how data is stored in an event store and then evaluate di↵erent solutions to find a suitable database. The graph database Neo4j was selected to be further investigated and a Neo4j event store has been implemented. At last the implemented solution is evaluated against the existing event store that uses a relational database. The conclusion of this thesis is that event store data could easily be modeled in Neo4j but some queries became complex to implement. The performance tests showed us that the implemented event store had poorer performance than the existing one using a relational database.
|
2 |
An Evaluation on Using Coarse-grained Events in an Event Sourcing Context and its Effects Compared to Fine-grained Events / En utvärdering på användningen av grova händelser i ett event sourcing-sammanhang och dess konsekvenser jämfört med fina händelserYe, Brian January 2017 (has links)
Introducing event sourcing to a system that is based on a model following Create, Read, Update and Delete (CRUD) operations can be a challenging task and requires an extensive rework of the current system. By introducing coarse-grained events it is possible to persist the structure of the data in a CRUD model and still gain the benefits of event sourcing, avoiding an extensive rework of the system. This thesis investigates how large amounts of data can be handled with coarse-grained events and still gain the benefits of event sourcing, by comparing with the conventional way of using fine-grained events. The data to be examined is trade data fed into a data warehouse. Based on research, an event sourcing application is implemented for coarse-grained as well as fine-grained events, to measure the difference between the two event types. The difference is limited to the metrics, latency and size of storage. The application is verified with an error handler, using example data and a profiler to make sure that it does not have any unnecessary bottlenecks. The resulting performance of the two cases show that fine-grained events have excessively larger latency than coarse-grained events in most cases whereas the size of storage is strictly smaller for fine-grained events. / Att introducera event sourcing i ett system baserat på en model som använder Create-, Read-, Update- och Delete-operationer (CRUD) kan vara en utmanande uppgift och kräver en omfattande omstrukturering av det nuvarande systemet. Genom att introducera grova händelser är det möjligt att bevara hela strukturen på datan i en CRUD-modell och ändå få fördelarna med event sourcing, för att därigenom undvika en omfattande omarbetning av systemet. Detta arbete undersöker hur stora datamängder kan hanteras genom grova händelser och ändå ge fördelarna med event sourcing, genom att jämföra med det konventionella sättet att använda fina händelser. Datan som undersöks är transaktionsdata på finansiella derivat som matas in i ett datalager. Baserat på forskning implementeras en event sourcing-applikation för både grova och fina händelser, för att mäta skillnaden mellan dessa två händelsetyper. Skillnaden är avgränsad till latens och lagringsutrymme. Applikationen verifieras genom felhantering, exempeldata och profilering för att säkerställa att den inte har några onödiga flaskhalsar. Den resulterande prestandan visar att fina händelser har betydligt större latens än grova händelser i de flesta fallen, medan lagringsutrymmet är strikt mindre för fina händelser.
|
3 |
MAINTAINING PARALLEL REALITIES IN CQRS AND EVENT SOURCINGEschmann, Ehren Thomas 21 August 2017 (has links)
No description available.
|
4 |
Managing the challenges of event sourcing : Versioning and incorrect statesKarlsson, Andreas, Pettersson, Nils, Malmquist, Peter January 2019 (has links)
Event sourcing has caught the interest of many developers due to desirable features such as an implicit audit log and a simplified database design. This thesis presents a case study with a focus on managing the challenges of versioning and correcting incorrect states. The techniques upcasting and support multiple versions are investigated for handling versioning within event sourcing. Partial and full reversal techniques are applied to investigate the correction of incorrect states. The techniques will be implemented within an event sourcing prototype written in F# to demonstrate how the techniques behave in practice, which can be of use for developers that want to endeavor into event sourcing projects. The results of the study show that all investigated techniques can handle the associated challenges. The comparison of techniques shows the advantages and disadvantages associated with the techniques when implemented in the prototype.
|
5 |
Evaluating fine-grained events foran Event Sourcing proof-of-conceptNguyen, Henrik January 2019 (has links)
Data conversion for evolving events in an Event Sourcing System is a complex issue and needs to be maintainable. There are suggested ways handling data conversion today which combine different methods into a framework. However, there is a lack of exploration of different and alternative methods to handle the complicated matter.This thesis explores data conversion with fine-grained events. The purpose is to explore methods and broaden knowledge for handling data conversion while using attribute driven events called fine-grained events. The goal was to build a proof-of-concept that preserves the attributes reliability and availability and can handle data conversion of these specific events.The results found by using fine-grained events are a decrease in terms of system complexity and a proof-of-concept that maintains the desired attributes. / Datakonvertering för utvecklande händelser i ett Event Sourcing System är en komplex fråga som kräver att systemet är enkelt underhållning. Det finns förslag på sätt att hantera datakonvertering idag, vilket kombinerar olika metoder i ett ramverk. Det finns emellertid en brist på undersökning av olika och alternativa metoder för att hantera den komplexa orsaken.Denna avhandling undersöker datakonvertering med finkorniga händelser. Syftet är att utforska metoder och utvidga kunskap för hantering av datakonvertering genom att använda attributdrivna händelser som kallas finkorniga händelser. Målet var att bygga ett proof-of-concept som bevarar egenskaperpålitlighet och tillgängligt och som dessa specifika händelser.även hanterar datakonvertering förResultaten som hittas genom att använda finkorniga händelser är en minskning av systemkomplexiteten och ett bevis på koncept som upprätthåller de önskade egenskaperna.
|
6 |
Architecture événementielle pour les environnements virtuels collaboratifs sur le web : application à la manipulation et à la visualisation d'objets en 3D / Event-based architecture for web-based virtual collaborative environments : application to manipulation and visualisation of 3D objectsDesprat, Caroline 01 December 2017 (has links)
L’évolution technologique du web durant ces dernières années a favorisé l’arrivée d’environnements virtuels collaboratifs pour la modélisation 3D à grande échelle. Alors que la collaboration réunit dans un même espace partagé des utilisateurs distants géographiquement pour un objectif de collaboration commun, les ressources matérielles qu'ils apportent (calcul, stockage, 3D ...) avec leurs connaissances sont encore trop rarement utilisées et cela constitue un défi. Il s'agit en effet de proposer un système simple, performant et transparent pour les utilisateurs afin de permettre une collaboration efficace à la fois sur le volet computationnel mais aussi, bien entendu, sur l'aspect métier lié à la modélisation 3D sur le web. Pour rendre efficace le passage à l’échelle, de nombreux systèmes utilisent une architecture réseau dite "hybride", combinant client serveur et pair-à-pair. La réplication optimiste s'adapte bien aux propriétés de ces environnements répartis : la dynamicité des utilisateurs et leur nombre, le type de donnée traitées (3D) et leur taille. Cette thèse présente un modèle pour les systèmes d’édition collaborative en 3D sur le web. L'architecture cliente (3DEvent) permet de déporter les aspects métiers de la 3D au plus près de l’utilisateur sous la forme d’évènements. Cette architecture orientée événements repose sur le constat d’un fort besoin de traçabilité et d’historique sur les données 3D lors de l’assemblage d’un modèle. Cet aspect est porté intrinsèquement par le patron de conception event-sourcing. Ce modèle est complété par la définition d’un intergiciel en pair-à-pair. Sur ce dernier point, nous proposons d'utiliser la technologie WebRTC qui présente une API familière aux développeurs de services en infonuagique. Une évaluation portant sur deux études utilisateur concernant l’acceptance du modèle proposé a été menée dans le cadre de tâches d’assemblage de modèles 3D sur plusieurs groupes d’utilisateurs. / Web technologies evolutions during last decades fostered the development of collaborative virtual environments for 3D design at large scale. Despite the fact that collaborative environments gather in a same shared space geographically distant users in a common objective, the hardware ressources of their clients (calcul, storage, graphics ...) are often underused because of the challenge it represents. It is indeed a matter of offering an easy-to-use, efficient and transparent collaborative system to the user supporting both computationnal and 3D design visualisation and business logic needs in heterogeneous web environments. To scale well, numerous systems use a network architecture called "hybrid", combining both client-server and peer-to-peer. Optimistic replication is well adapted to distributed application such as 3D collaborative envionments : the dynamicity of users and their numbers, the 3D data type used and the large amount and size of it.This document presents a model for 3D web-based collaborative editing systems. This model integrates 3DEvent, an client-based architecture allowing us to bring 3D business logic closer to the user using events. Indeed, the need of traceability and history awareness is required during 3D design especially when several experts are involved during the process. This aspect is intrinsec to event-sourcing design pattern. This architecture is completed by a peer-to-peer middleware responsible for the synchronisation and the consistency of the system. To implement it, we propose to use the recent web standard API called WebRTC, close to cloud development services know by developers. To evaluate the model, two user studies were conducted on several group of users concerning its responsiveness and the acceptance by users in the frame of cooperative assembly tasks of 3D models.
|
7 |
Implementering av händelsedrivenarkitektur och händelsekällor för hälsodata / Implementation of event driven architecture and event sourcing for health dataKarlström, Kasper, Dewitsegid, Samsom January 2024 (has links)
Dagens hälso- och sjukvårdssystem är byggda som en traditionell monolit men det finns fler sätt att utveckla dessa system på. Händelsedriven arkitektur med händel-sekällor för lagring av data är ett modernt sätt att utveckla system. Syftet med det här arbetet är att undersöka om den modernare arkitekturen skulle kunna vara lämpligt och säkert alternativ för hälso- och sjukvårdssystem. För att undersöka detta gjordes en litteraturstudie inom relevanta områden som händelsedriven arki-tektur, händelsekällor, mikrotjänster och monolitiska system. Resultatet ifrån litteraturstudien gav att det finns andra beprövade koncept från andra problemområden, så som säker kommunikation och säker lagring med spår-barhet, som om de användes med händelsedriven arkitektur skulle uppnå kraven för hälsosektorn. Forskningsfrågan kan besvaras positivt baserat på den genomförda lit-teraturstudien. Därtill utvecklades en enkel prototyp, som utan att innehålla säker-hetsaspekter, gör det lätt att observera för och nackdelar med händelsedrivna lös-ningar jämfört med exempelvis traditionella monolitiska lösningar. / Today's healthcare systems are built as a traditional monolith, but there are more ways to develop these systems. Event driven architecture with event sourcing for sto-ring data is a modern way of developing systems. The purpose of this work is to in-vestigate whether the more modern architecture could be a suitable and safe alter-native for healthcare systems. To investigate this, a literature study was conducted in relevant areas such as event driven architecture, event sources, microservices and monolithic systems. The result of the literature study showed that there are other proven concepts from other problem areas, such as secure communication and secure storage with tracea-bility, which if used with event driven architecture would meet the requirements of the health sector. The research question can be answered positively based on the completed literature study. In addition, a simple prototype was developed, which, without containing security aspects, makes it easy to observe the pros and cons of event driven solutions compared to, for example, traditional monolithic solutions.
|
8 |
Comparison between CRUD and CQRS in an event driven system / Jämförelse mellan CRUD och CQRS i ett event drivet systemJansson, Rasmus January 2024 (has links)
In todays digitalised society, effective solutions to manage huge amount of data is needed. An established design pattern that are used in many systems are CRUD. To handle data in events have become more popular over the years, but CRUD is not optimised for it. A possible replacement is CQRS, it is designed with events in mind. The purpose of the report is to see if CQRS can replace CRUD. The report shows that when it comes to an event driven system using event sourcing, CQRS is recommended. Reason being CQRS is more compatible with events then CRUD. CRUD is more designed around data driven design and therefor is a better fit for other systems. / I dagens digitaliserade samhälle krävs effektiva lösningar för att behandla stora mängder data. Ett etablerat designmönster som används i många system är CRUD. Att hantera data i händelser är något som har blivit alltmer populärt, men CRUD är inte optimerad kring just det. En möjlig ersättare är CQRS, som är designad med event i åtanke. Målet med denna rapport är att se om CQRS kan ersätta CRUD i ett händelsebaserat system. Rapporten visar att när det kommer till ett händelsedrivet system som använder händelsekällor, så är rekommendationen att använda CQRS. Detta för att CQRS är mer kompatibel med händelser än CRUD. CRUD är mer designat runt data driven design och funkar därför bättre med andra typer av system.
|
9 |
A new programming model for enterprise software : Allowing for rapid adaption and supporting maintainability at scaleHöffl, Marc January 2017 (has links)
Companies are under constant pressure to adapt and improve their processes to staycompetitive. Since most of their processes are handled by software, it also needs toconstantly change. Those improvements and changes add up over time and increase thecomplexity of the system, which in turn prevents the company from further adaption.In order to change and improve existing business processes and their implementation withinsoftware, several stakeholders have to go through a long process. Current IT methodologies arenot suitable for such a dynamic environment. The analysis of this change process shows thatfour software characteristics are important to speed it up. They are: transparency, adaptability,testability and reparability. Transparency refers to the users capability to understand what thesystem is doing, where and why. Adaptability is a mainly technical characteristic that indicatesthe capability of the system to evolve or change. Testability allows automated testing andvalidation for correctness without requiring manual checks. The last characteristic is reparability,which describes the possibility to bring the system back into a consistent and correct state, evenif erroneous software was deployed.An architecture and software development patterns are evaluated to build an overall programmingmodel that provides the software characteristics. The overall architecture is basedon microservices, which facilitates decoupling and maintainability for the software as well asorganizations. Command Query Responsibility Segregation decouples read from write operationsand makes data changes explicit. With Event Sourcing, the system stores not only the currentstate, but all historic events. It provides a built-in audit trail and is able to reproduce differentscenarios for troubleshooting and testing.A demo process is defined and implemented within multiple prototypes. The design of theprototype is based on the programming model. It is built in Javascript and implements Microservices,CQRS and Event Sourcing. The prototypes show and validate how the programmingmodel provides the software characteristics. Software built with the programming model allowscompanies to iterate faster at scale. Since the programming model is suited for complex processes,the main limitation is that the validation is based on a demo process that is simpler and thebenefits are hard to quantify. / ör att fortsatt vara konkurrenskraftiga är företag under konstant press att anpassa ochförbättra sina processer. Eftersom de flesta processer hanteras av programvara, behöveräven de ständigt förändras. Övertiden leder dessa förbättringar och förändringar till ökadsystemkomplexitet, vilket i sin tur hindrar företaget från ytterligare anpassningar. För attförändra och förbättra befintliga affärsprocesser och dess programvara, måste idag typiskt fleraaktörer vara en del av en lång och tidskrävande process. Nuvarande metoder är inte lämpade fören sådan dynamisk miljö. Detta arbete har fokuserat på fyra programvaruegenskaper som ärviktiga för att underlätta förändringsprocesser. Dessa fyra egenskaper är: öppenhet, anpassningsförmåga,testbarhet och reparerbarhet. Öppenhet, hänvisar till förmågan att förstå varför, var ochvad systemet gör. Anpassningsbarhet är huvudsakligen en teknisk egenskap som fokuserar påsystemets förmåga att utvecklas och förändras. Testbarhet strävar efter automatisk testning ochvalidering av korrekthet som kräver ingen eller lite manuell kontroll. Den sista egenskapen ärreparerbarhet, som beskriver möjligheten att återhämta systemet till ett konsekvent och korrekttillstånd, även om felaktig programvara har använts. En programmeringsmodell som rustarprogramvara med de ovan beskrivna programegenskaperna är utvecklad i detta examensarbete.Programmeringsmodellens arkitektur är baserad på diverse micro-tjänster, vilka ger brafrånkopplings- och underhållsförmåga för en programvara, samt användarorganisationerna.Command Query Responsibility Segregation (CQRS) frånkopplar läsoperationer från skrivoperationeroch gör ändringar i data explicita. Med Event Sourcing lagrar systemet inte endastdet nuvarande tillståndet, utan alla historiska händelser. Modellen förser användarna medett inbyggt revisionsspår och kan reproducera olika scenarion för felsökning och testning. Endemoprocess är definierad och implementerad i tre olika prototyper. Designen av prototypernaär baserad på den föreslagna programmeringsmodellen. Vilken är byggd i Javascript och implementerarmicro-tjänster, CQRS och Event Sourcing. Prototyperna visar och validerar hurprogrammeringsmodellen ger programvaran rätt egenskaper. Programvara byggd med dennaprogrammeringsmodell tillåter företag att iterera snabbare. De huvudsakliga begränsningarna iarbetet är att valideringen är baserad på en enklare demoprocess och att dess fördelar är svåraatt kvantifiera.
|
Page generated in 0.0654 seconds