io.github.crabzilla:crabzilla-kotlin-example1-database

Yet another Event Sourcing experiment

Лицензия

Лицензия

Категории

Категории

Kotlin Языки программирования Данные
Группа

Группа

io.github.crabzilla
Идентификатор

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

crabzilla-kotlin-example1-database
Последняя версия

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

0.0.5
Дата

Дата

Тип

Тип

jar
Описание

Описание

Yet another Event Sourcing experiment

Скачать crabzilla-kotlin-example1-database

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

<!-- https://jarcasting.com/artifacts/io.github.crabzilla/crabzilla-kotlin-example1-database/ -->
<dependency>
    <groupId>io.github.crabzilla</groupId>
    <artifactId>crabzilla-kotlin-example1-database</artifactId>
    <version>0.0.5</version>
</dependency>
// https://jarcasting.com/artifacts/io.github.crabzilla/crabzilla-kotlin-example1-database/
implementation 'io.github.crabzilla:crabzilla-kotlin-example1-database:0.0.5'
// https://jarcasting.com/artifacts/io.github.crabzilla/crabzilla-kotlin-example1-database/
implementation ("io.github.crabzilla:crabzilla-kotlin-example1-database:0.0.5")
'io.github.crabzilla:crabzilla-kotlin-example1-database:jar:0.0.5'
<dependency org="io.github.crabzilla" name="crabzilla-kotlin-example1-database" rev="0.0.5">
  <artifact name="crabzilla-kotlin-example1-database" type="jar" />
</dependency>
@Grapes(
@Grab(group='io.github.crabzilla', module='crabzilla-kotlin-example1-database', version='0.0.5')
)
libraryDependencies += "io.github.crabzilla" % "crabzilla-kotlin-example1-database" % "0.0.5"
[io.github.crabzilla/crabzilla-kotlin-example1-database "0.0.5"]

Зависимости

compile (10)

Идентификатор библиотеки Тип Версия
io.github.crabzilla : crabzilla-kotlin-example1-core jar 0.0.5
org.jdbi : jdbi3 jar 3.0.0-beta2
org.jdbi : jdbi3-sqlobject jar 3.0.0-beta2
org.jdbi : jdbi3-kotlin jar 3.0.0-beta2
org.jdbi : jdbi3-kotlin-sqlobject jar 3.0.0-beta2
mysql : mysql-connector-java jar 6.0.6
org.jetbrains.kotlin : kotlin-stdlib jar 1.1.4
com.fasterxml.jackson.module : jackson-module-kotlin jar 2.9.0.pr4
javax.inject : javax.inject jar 1
org.slf4j : slf4j-api jar 1.7.8

provided (1)

Идентификатор библиотеки Тип Версия
org.projectlombok : lombok jar 1.16.18

test (4)

Идентификатор библиотеки Тип Версия
org.junit.vintage : junit-vintage-engine jar 4.12.0-RC2
org.junit.jupiter : junit-jupiter-api jar 5.0.0-RC2
org.mockito : mockito-core jar 2.7.4
org.assertj : assertj-core jar 3.5.0

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

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

Build Status codecov Maven Central

crabzilla

Goal for version 1.0.0

To help writing CQRS and Event Sourcing applications with Vert.x

Status

It's still in very early development stage. Do not use release 0.0.5, master branch is very different from that.

Example

Building

Requirements
  • Java 8
  • Maven (tested with 3.5.0+)
  • Docker compose (tested with 1.18.0)
  • Kotlin plugin for your IDE
Steps
  1. Clone it:
git clone https://github.com/crabzilla/crabzilla
cd crabzilla
  1. Start docker-compose running a Postgres database (port 5432 will be used):
docker-compose up
  1. Open another terminal and build it, running both unit and integration tests:
mvn clean install -DskipTests=false

Random notes

  1. Crabzilla tries to provide a chassis for wiring and running your domain by using plain verticles.
  2. If your command handling functions are pure, all side effects will occurs within:
    • core.UnitOfWorkJournal: to save the events to a database using optimistic concurrency control
    • pgc.PgcUnitOfWorkProjector: to project events to a read model using a PostgreSql database using vertx-pg-client
    • jooq.JooqUowProjector: to project events to a read model using vertx-jooq-classic-reactive
  3. So far events from all entities are written as an UnitOfWork in Json format into a single partitioned append only table.
io.github.crabzilla

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

Версия
0.0.5