Dewdrop:開源事件源框架
Dewdrop 是一個自以為是的、簡單而強大的框架,用於在 Java 中實現事件溯源。Dewdrop 的想法是透過將所有複雜的事件讀取、寫入和編組深入到框架中,使您的團隊能夠專注於根據 AggregateRoot 構建業務邏輯,從而輕鬆快速地構建事件驅動系統行為、查詢邏輯和 ReadModel 組合。
目前,Dewdrop 僅支援使用EventStore作為其後備儲存。
Dewdrop 嚴格遵循一些架構原則,以便輕鬆構建事件驅動的系統。以下是 Dewdrop 的核心概念:
- DDD - 領域驅動設計
- CQRS - 命令查詢職責分離
- 事件溯源——事件驅動架構
使用方式
首先,您需要確保在本地執行 EventStore。為此,您可以下載EventStore客戶端並執行它。或者,您可以執行儲存庫中包含的 docker 例項。要啟動 docker 例項,請在 dewdrop 目錄中執行以下命令:
docker-compose up -d
我們還假設大多數參與該專案的人都在像 Spring Boot 這樣的依賴注入框架中執行它。如果是這種情況,您需要建立一個包裝您的 DI 應用程式上下文的類。對於 Spring Boot,您將建立一個實現DependencyInjectionAdapter並將其公開為 bean 的類。
public class DewdropDependencyInjection implements DependencyInjectionAdapter { private ApplicationContext applicationContext; public DewdropDependencyInjection(ApplicationContext applicationContext) { this.applicationContext = applicationContext; } @Override public <T> T getBean(Class<?> clazz) { return (T) applicationContext.getBean(clazz); } } |
這讓 Dewdrop 知道它應該使用應用程式上下文來獲取它需要的 Spring 託管 bean。
下一步是建立一個DewdropConfiguration用於配置 Dewdrop 框架的類。
import java.beans.BeanProperty; public class DewdropConfiguration { @Autowired ApplicationContext applicationContext; @Bean public DewdropDependencyInjection dependencyInjection() { return new DewdropDependencyInjection(applicationContext); } @Bean public DewdropProperties dewdropProperties() { return DewdropProperties.builder() .packageToScan("events.dewdrop") .packageToExclude("events.dewdrop.fixture.customized") .connectionString("esdb://localhost:2113?tls=false") .create(); } @Bean public Dewdrop dewdrop() { return DewdropSettings.builder() .properties(dewdropProperties()) .dependencyInjectionAdapter(dependencyInjection()) .create() .start(); } } |
就是這樣!您現在可以執行該應用程式,它將啟動 Dewdrop 框架。
相關文章
- phpGrace開源PHP框架PHP框架
- Python的事件溯源開源庫Python事件
- 開源RAG框架彙總框架
- IDEA升級開源框架Idea框架
- Workerman開源框架的作者框架
- 開源 POC 框架學習 (kunpeng)框架
- EacooPHP框架【開源、免費、好用】OOPPHP框架
- 滴滴開源小程式框架Mpx框架
- Android 面試開源框架篇Android面試框架
- Android中使用AndroidTagGroup開源框架Android框架
- 開源漏洞檢測框架收集框架
- 微前端框架chunchao(春潮)開源啦前端框架
- 國內優秀MES開源框架框架
- novaframework/nova:Erlang的開源Web框架。FrameworkWeb框架
- 手寫開源ORM框架介紹ORM框架
- [Android開源框架]RxHttp使用說明Android框架HTTP
- 5款Java微服務開源框架Java微服務框架
- 分享個人開源爬蟲框架爬蟲框架
- 前端開發必看的幾個開源框架!前端框架
- 深度學習開發必備開源框架深度學習框架
- .NET Core中的事件溯源開源專案事件
- 微信小程式優質資源彙總:開源框架、開源App和開源庫,總有一款適合你(1)微信小程式框架APP
- 熱門開源Text2SQL框架SQL框架
- EFCore.Sharding(EFCore開源分表框架)框架
- TensorFlow 框架的開源工具箱 Ludwig框架開源工具
- 開源框架TLog核心原理架構解析框架架構
- Java面試寶典之開源框架!Java面試框架
- Android開源框架原始碼鑑賞:VirtualAPKAndroid框架原始碼APK
- Swift編寫的EOS開源框架SwiftyEOSSwift框架
- 阿里巴巴開源路由框架 - ARouter 分析阿里路由框架
- Google開源TensorFlow強化學習框架!Go強化學習框架
- Android開源框架如何說-Gilde4Android框架
- Python AI框架-PyTorch 1.0即將開源PythonAI框架PyTorch
- Hibernate (開源物件關係對映框架)物件框架
- Android開源框架原始碼鑑賞:EventBusAndroid框架原始碼
- 【開源公告】H5、小程式自動化測試框架FAutoTest正式開源H5框架
- 開源Android容器化框架Atlas開發者指南Android框架
- 開源量化框架backtrader FAQ:開發MySQL data feed框架MySql