org.occurrent:subscription-util-reactor-automatic-position-persistence

Event Sourcing Utilities for the JVM based on the CloudEvents specification

Лицензия

Лицензия

Категории

Категории

React Взаимодействие с пользователем Веб-фреймворки Auto Библиотеки уровня приложения Code Generators Reactor Контейнер Микросервисы Reactive libraries
Группа

Группа

org.occurrent
Идентификатор

Идентификатор

subscription-util-reactor-automatic-position-persistence
Последняя версия

Последняя версия

0.4.1
Дата

Дата

Тип

Тип

jar
Описание

Описание

Event Sourcing Utilities for the JVM based on the CloudEvents specification

Скачать subscription-util-reactor-automatic-position-persistence

Как подключить последнюю версию

<!-- https://jarcasting.com/artifacts/org.occurrent/subscription-util-reactor-automatic-position-persistence/ -->
<dependency>
    <groupId>org.occurrent</groupId>
    <artifactId>subscription-util-reactor-automatic-position-persistence</artifactId>
    <version>0.4.1</version>
</dependency>
// https://jarcasting.com/artifacts/org.occurrent/subscription-util-reactor-automatic-position-persistence/
implementation 'org.occurrent:subscription-util-reactor-automatic-position-persistence:0.4.1'
// https://jarcasting.com/artifacts/org.occurrent/subscription-util-reactor-automatic-position-persistence/
implementation ("org.occurrent:subscription-util-reactor-automatic-position-persistence:0.4.1")
'org.occurrent:subscription-util-reactor-automatic-position-persistence:jar:0.4.1'
<dependency org="org.occurrent" name="subscription-util-reactor-automatic-position-persistence" rev="0.4.1">
  <artifact name="subscription-util-reactor-automatic-position-persistence" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.occurrent', module='subscription-util-reactor-automatic-position-persistence', version='0.4.1')
)
libraryDependencies += "org.occurrent" % "subscription-util-reactor-automatic-position-persistence" % "0.4.1"
[org.occurrent/subscription-util-reactor-automatic-position-persistence "0.4.1"]

Зависимости

compile (3)

Идентификатор библиотеки Тип Версия
org.occurrent : subscription-api-reactor jar 0.4.1
org.occurrent : subscription-util-predicates jar 0.4.1
ch.qos.logback : logback-classic jar 1.2.3

test (13)

Идентификатор библиотеки Тип Версия
org.occurrent : eventstore-mongodb-spring-reactor jar 0.4.1
org.occurrent : subscription-mongodb-spring-reactor jar 0.4.1
org.occurrent : subscription-mongodb-spring-reactor-position-storage jar 0.4.1
io.projectreactor : reactor-test jar 3.4.0
org.junit.jupiter : junit-jupiter-engine jar 5.6.2
org.junit.jupiter : junit-jupiter-params jar 5.6.2
org.testcontainers : testcontainers jar 1.15.0
org.testcontainers : junit-jupiter jar 1.15.0
org.testcontainers : mongodb jar 1.15.0
org.assertj : assertj-core jar 3.16.1
org.occurrent : test-support jar 0.4.1
org.awaitility : awaitility jar 4.0.3
io.github.artsok : rerunner-jupiter jar 2.1.6

Модули Проекта

Данный проект не имеет модулей.


Build Status

Occurrent is a set of Event Sourcing utilities based on the cloud events specification.

Work in progress, don't use in production just yet :)

Documentation

You can find documentation on the website.

Design Choices

Occurrent is designed to be simple, non-intrusive and pragmatic. It emphasises understandability, composability, transparentness and pragmatism.

  • You should be able to design your domain model without any dependencies to Occurrent or any other library. Your domain model can be expressed with pure functions that returns events. Use Occurrent to store these events.
  • Simple: Pick only the libraries you need, no need for an all or nothing solution.
  • You should be in control! Magic is kept to a minimum and data is stored in a standard format (cloud events). You are responsible for serializing/deserializing the cloud events "body" (data) yourself.
  • Composable: Function composition and pipes are encouraged. For example pipe the event stream to a rehydration function (any function that converts a stream of events to current state) before calling your domain model.
  • Designed to be used as a library and not a framework to the greatest extent possible.
  • Pragmatic: Need consistent projections? You can decide to write projections and events transactionally using tools you already know (such as Spring @Transactional)!
  • Interoperable/Portable: Cloud events is a CNCF specification for describing event data in a common way. CloudEvents seeks to dramatically simplify event declaration and delivery across services, platforms, and beyond!
  • Use the Occurrent components as lego bricks to compose your own pipelines. Components are designed to be small so that you should be able to re-write them tailored to your own needs if required. Missing a component? You should be able to write one yourself and hook into the rest of the eco-system. Write your own problem/domain specific layer on-top of Occurrent.
  • Since you know that events are stored as Cloud Events even in the database you can use the database to your advantage. For example you can create custom indexes used for fast and fully consistent domain queries directly on an event stream (or even multiple streams).

Версии библиотеки

Версия
0.4.1
0.4.0
0.3.0
0.2.1
0.2.0
0.1.1
0.1.0