Occcurrent:JVM事件溯源工具庫包
Occcurrent 是一個事件溯源庫,它是一組用於 JVM 的事件溯源實用程式,由Johan Haleby建立。
能夠在不依賴Occurrent或任何其他庫的情況下設計你的領域模型。你的領域模型可以用返回事件的純函式來表達。使用Occurrent來儲存這些事件。
使用Occurrent元件作為樂高積木來組成你自己的管道。元件被設計得很小,所以如果需要,你可以根據自己的需要重新編寫。在Occurrent之上編寫你自己的特定問題/領域層。
領域事件在資料庫中是作為雲事件儲存的,你可以利用資料庫的優勢。例如,你可以建立自定義索引,用於直接在一個事件流(甚至多個流)上進行快速和完全一致的領域查詢。
雲事件是一個CNCF規範,用於以通用方式描述事件資料。雲事件旨在極大地簡化跨服務、跨平臺和跨領域的事件宣告和交付。
支援(如Spring @Transactional)以事務性方式編寫預測和事件。
程式碼案例:
public class ApplicationService { private final EventStore eventStore; private final Converter converter; public ApplicationService(EventStore eventStore, Converter converter) { this.eventStore = eventStore; this.converter = converter; } public void execute(String streamId, Function<Stream<DomainEvent>, Stream<DomainEvent>> functionThatCallsDomainModel) { // Read all events from the event store for a particular stream EventStream<CloudEvent> eventStream = eventStore.read(streamId.toString()); // Convert the cloud events into domain events Stream<DomainEvent> persistedDomainEvents = eventStream.events().map(converter::toDomainEvent); // Call a pure function from the domain model which returns a Stream of domain events Stream<DomainEvent> newDomainEvents = functionThatCallsDomainModel.apply(persistedDomainEvents); // Convert domain events to cloud events and write them to the event store eventStore.write(streamId, eventStream.version(), newDomainEvents.map(converter::toCloudEvent)); } } |
Occcurrent 沒有任何用於建立檢視/投影的特殊元件。相反,您只需建立一個訂閱,您可以在其中建立和儲存您認為合適的檢視。
相關文章
- oskardudycz/EventSourcing.JVM:JVM語言中事件溯源的示例和教程JVM事件
- Python的事件溯源開源庫Python事件
- .NET的事件溯源構建庫:Eventuous事件
- 事件協作和事件溯源事件
- 事件流與事件溯源事件
- PHP 事件溯源PHP事件
- Java中的事件溯源簡介:包含學習進度的練習工具包Java事件
- 剖玄析微聚合 - 事件溯源事件
- 事件溯源全指南 - Arkwrite事件
- 事件溯源不是什麼?事件
- 事件消費者之 Projector - 事件溯源事件Project
- 事件消費者之 Reactor - 事件溯源事件React
- 事件溯源將顛覆關聯式資料庫! - Remy事件資料庫REM
- 事件溯源超越關聯式資料庫 - confluent事件資料庫
- 跟著練、包會(JVM調優工具)JVM
- 事件消費者之 Saga - 事件溯源事件
- 使用Kafka實現事件溯源Kafka事件
- Rust中的事件溯源 - ariseyhunRust事件
- Chronicle事件溯源的最佳實踐事件
- .NET分散式Orleans - 6 - 事件溯源分散式事件
- 無伺服器與事件溯源結合的演示案例:將事件溯源作為Azure函式的資料持久化機制的庫伺服器事件函式持久化
- Java反應式事件溯源:領域Java事件
- 從增刪改查到事件溯源 - PHP事件PHP
- 從入門到放棄 - 事件溯源事件
- HomeAway分享雲端事件溯源經驗事件
- Spring Boot和EventStoreDB事件溯源案例Spring Boot事件
- 什麼是事件溯源Event Sourcing?事件
- 如何讓客戶方便地使用事件溯源?事件溯源有什麼好處?- daryush_d事件
- 事件溯源:投影或投射模式 -Kacper Gunia事件模式
- 事件溯源與流水賬的結賬模式事件模式
- 事件溯源:是來自事件的狀態與作為狀態的事件? - verraes事件
- MySQL的事件溯源Event Sourcing表結構MySql事件
- 從 CRUD 遷移到事件溯源的祕訣 - eventstore事件
- 拯救祭天的程式設計師——事件溯源模式程式設計師事件模式
- eBay透過事件溯源實現持續交付事件
- .NET Core中的事件溯源開源專案事件
- 審計系統的一劑良方——事件溯源事件
- 如何遷移到微服務和事件溯源EventSourcing微服務事件