![](/style/images/good.png)
![](/style/images/bad.png)
https://keith-mifsud.me/blog/planning-the-technology-stack-for-an-event-sourcing-project
The most common question I encounter when training or consulting with developers, Engineers and Software development laboratories about a new Event Sourcing project is how and where do we start. This question makes so much sense. I remember trying to get my head around Object Oriented Programming in practice (not the crap I learnt at school), let alone understanding Domain-Driven Design!
Almost a decade ago, I was building a relatively complex online and offline sales and logistics system for what was, back in the day one of my largest clients: a manufacturer, wholesaler and distributor of industrial Refrigeration and Air-conditioning systems. Three months in the project, I had my team set up with three Software Engineers, two backend web developers and one frontend developer. We were making excellent progress. We were building this system using a DDD model and Laravel as the application framework. It was good, and we were productive. Then, the client hired an internal CTO. He asked to meet me, and I obliged. He asked me how it was working in Event Sourcing with PHP. My answer was more of a series of questions ?.
I already knew about Event Sourcing, I read the books but I never, ever needed to implement such a thing. I did not know where to start. I mean, I had no idea. I knew the concept and the theory, but that was it.
In my previous article, I explained how I get started with a new Event Sourcing Project. With some theory and Event Storming covered, it is time to start thinking about other equally important factors, the Technology Stack for an Event Sourcing project.
I chose PHP as the primary backend programming language. However, I am confident that the planning factors apply to any programming language you'd like to use for your Event Sourcing project. In this article, I will outline what the considerations for planning the Infrastructure and the Application glue in between are. I will also describe and provide a working example of my local environment deployment, code structure, and what I deem as the starting point for such a system, the testing framework.
How to plan the infrastructure services for an event sourcing project Arguably, I believe that in the majority of cases, when working with a team, preparing for these requirements will depend on several factors and other project stakeholder's needs. Although I am making these decisions by myself for this project, the process is similar for teams and projects commissioned by your clients. The main difference is that I can choose which backend services I am most comfortable using and that I don't have external dependencies beyond my control. Such as migrating or integrating data from an MSSQL database into a MySQL Database ?.
During my career, I had an equal number of opportunities for developing new systems and migrating legacy systems into an event sourcing solution. In my opinion, the latter is a lot more complicated. You can get in touch with me if you need help with refactoring a legacy system to use an event sourcing pattern and also to migrate your existing data. I intentionally kept this example Domain simple so to not distract you from the primary topic, which is to build an Event Sourcing project with practical examples. The example code in this project is a sample from a commercial project I manage. Please feel free to ask me questions in the comments section further below about this or other Business Domains. With this out of the way, lets us start planning the Technology Stack for our example project because we have a lot to cover.
Event store database The most critical persistent storage for Event Sourcing is the Event Store Database. As I'm sure you are aware, there are several different database engines we can use for running our event store. I will not be comparing any of these engines in this post because all we need to know is that we need an append optimised database.
Given the immutable nature of Event Sourcing, we certainly don't need to update any of our persisted events. We also don't need to run any complex read queries. As I will mention in a future article, the Event Store implementation will query the persisted events as identified by the Aggregate's UUID (Universally Unique Identifier). That is quite a simple query.
Read More: https://keith-mifsud.me/blog/planning-the-technology-stack-for-an-event-sourcing-project
Recommend
相关搜索关键词
- technology
- adaptation project
- cli project
- Side project
- side project
- Project elixir samsumg m31
- Side+project
- side+project
- cli+project
- Project+elixir+samsumg+m31
- Realme 5 project elxir
- Realme+5+project+elxir
- machine learning project source code
- https://www.jdbaa.com/
- https://www.bestsiteblog.com
- https://www.excellentwebworld.com/backend-vs-frontend/
- https://scribehow.com/shared/How_to_use_Github_Blooket_hacks__amiD-MpmSSCA3ATBEkTeUg#8b341df2
- https//discord.gg/RTseVPF8MA
- https://scribehow.com/shared/how_to_use_github_blooket_hacks__amid-mpmssca3atbekteug#8b341df2
- https:www.bestbuy.com
- https://4pda.to/forum/dl/post/14773198/AdbdPX5.apk
- https://help.sap.com/docs/sap_master_data_governance/00144c6cf07a4879b4b51e8d47a67413/4c9030af72b147
- https://www.businesssitelist.com
- https://bestbuy.com
- https://www.pronewblogger.com/finance
- https://www.newstienet.com/voipphone
- https://www.newnewsnet.com/voipphone
- https://www.probestonline.com
- https://www.newstienet.com
- https://raw.githubusercontent.com/iptv-
Recent search keywords
- WhyLiam
- tlink 5.3.47
- 天上天下
- .And Justice for All.
- Sourceforge
- blooketblooket
- JCAC10003-OC2-V1.0.45R2-221014_1723
- 实力至上
- Blooket-cheats
- the cw
- wap TW
- blookeet haacka
- xiaomi 12x
- sunmi
- @@5n5NE
- Ac8227l 1gb
- @@dpxb7/author-sitemap.xml
- Golang9990775
- oca
- fxiwu0ja
- 学习 Druid
- shadow socks
- Get every question correc
- INDI
- Online IPTV pleyar
- Infinite money in blicket
- 不良人
- 7261
- 1928
- jcac1003-oc2
- golang9949505
- RevenueCat
- slim4-filepond
- Startup AND 1085=8879-- IyFF
- @@tk9di
- addus
- mev
- get every questio right
- ASMR
- smartcasualarticlesandblogs
- JCAC10003-0C2-V1.0.97R3-231023_1114-JA0
- syncfusion
- You can go back to the original firmware
- Papa Wemba mama
- CVE-2022-23121
- Cost to Level a Pier and Beam House
- cyrus
- 叶寻
- @@dPXB7/wp-json/wp/v2/users/7
- token refiller
- macbook 键盘
- 鬼
- Factory
- Jcac 10003
- gmail
- 2023戛納創意節
- @@dpxb7/upload/adminer.php
- Damares
- 8227l update
- kana kalum kalangal season 1
- Fake bitcoin transaction sender free download
- https://rfd0gi.jiuse300.com/video/embed/1119891464
- ac8227l JCAC10003-OC2-20412011210
- faarhey
- javascript权威指南
- @@dPXB7/wp-content/pwn.gif
- 4%
- qf001
- MRM 执行创意总监
- gcin
- YT9216BJ
- 点滴记录
- BLOOKET
- TAP网络适配器
- 含羞草研究所
- korea iptv&page=3) and 4631=4631-- svto
- codecademy
- sunmi v2s
- united arab emirates
- ac8227l cortex
- pornoespanol.net
- PornoEspanol.net
- easy-auto-refresh
- s24
- 隐私
- -1 OR 2 724-724-1=0 0 0 1
- r470gp
- golde
- MFC Windows程序设计
- CodeCode Caprice
- ac8227L
- UPDATE ROM AC8227L - Android JCAC10003-OC2
- hizpo s4
- SAS Red Notice
- TELUGU IPTV LINKS
- github - glixzzy/blooket-hack: multiple hacks that breaks the game" AND 9189=3525 AND "aDFE"="aDFE
- 深入理解 Gem5 之一
- krishangtechnolab
- Classic Board Game for Family and Friends
- blooket-hack / global /