All Projects → MAIF → thoth

MAIF / thoth

Licence: Apache-2.0 license
Event sourcing in java with vavr, akka stream and vertx reactive PG driver

Programming Languages

java
68154 projects - #9 most used programming language
scala
5932 projects
CSS
56736 projects

Projects that are alternatives of or similar to thoth

Akka Stream Eventsourcing
Event sourcing for Akka Streams
Stars: ✭ 105 (+288.89%)
Mutual labels:  event-sourcing, akka-streams
assembler
Functional, type-safe, stateless reactive Java API for efficient implementation of the API Composition Pattern for querying/merging data from multiple datasources/services, with a specific focus on solving the N + 1 query problem
Stars: ✭ 102 (+277.78%)
Mutual labels:  event-sourcing
kanadi
Kanadi is a Nakadi client for Scala
Stars: ✭ 20 (-25.93%)
Mutual labels:  akka-streams
spear
A sharp EventStoreDB v20+ client backed by Mint 😋
Stars: ✭ 51 (+88.89%)
Mutual labels:  event-sourcing
akka-persistence-gcp-datastore
akka-persistence-gcp-datastore is a journal and snapshot store plugin for akka-persistence using google cloud firestore in datastore mode.
Stars: ✭ 18 (-33.33%)
Mutual labels:  event-sourcing
paradox
Tools for event sourcing applications
Stars: ✭ 30 (+11.11%)
Mutual labels:  event-sourcing
khermes
A distributed fake data generator based in Akka.
Stars: ✭ 94 (+248.15%)
Mutual labels:  akka-streams
incata
Event Sourcing Data Access Library
Stars: ✭ 19 (-29.63%)
Mutual labels:  event-sourcing
edat
Event-driven architecture toolkit
Stars: ✭ 27 (+0%)
Mutual labels:  event-sourcing
stem
Event sourcing framework based on ZIO and pluggable runtime (currently working with Akka cluster)
Stars: ✭ 22 (-18.52%)
Mutual labels:  event-sourcing
fmodel-ts
Functional Domain Modeling with Typescript
Stars: ✭ 41 (+51.85%)
Mutual labels:  event-sourcing
eda-tutorial
Event-Driven Tutorial for Distributed Data with CQRS and Event Sourcing
Stars: ✭ 49 (+81.48%)
Mutual labels:  event-sourcing
Akka
Examples and explanations of how Akka toolkit works
Stars: ✭ 20 (-25.93%)
Mutual labels:  akka-streams
awesome-talks
Awesome talks about event sourcing, cqrs, microservices, funcional programming ...
Stars: ✭ 23 (-14.81%)
Mutual labels:  event-sourcing
akka-http-circe-json-template
Akka HTTP REST API Project Template using Akka HTTP 10.0.4 with Circe 0.7.0 targeting Scala 2.12.x
Stars: ✭ 21 (-22.22%)
Mutual labels:  akka-streams
banku
Go event sourcing with Kafka, example project
Stars: ✭ 29 (+7.41%)
Mutual labels:  event-sourcing
firebase-event-sourcing
Event Sourcing + CQRS + DDD for Firebase
Stars: ✭ 14 (-48.15%)
Mutual labels:  event-sourcing
VehicleTracker
Vehicle Tracker with Microservice example
Stars: ✭ 70 (+159.26%)
Mutual labels:  event-sourcing
Gringofts
Gringofts makes it easy to build a replicated, fault-tolerant, high throughput and distributed event-sourced system.
Stars: ✭ 84 (+211.11%)
Mutual labels:  event-sourcing
commander
Build event-driven and event streaming applications with ease
Stars: ✭ 60 (+122.22%)
Mutual labels:  event-sourcing

Event sourcing github-action-badge jar-badge

thoth

This repository provides tools to implement event sourcing in your application.

It guaranties that:

  • Events will be written in the database before being published in Kafka
  • Publication in Kafka will be reattempted until it succeeds

It provides capabilities of defining two types of projections:

  • "Transactional" projections, that are updated in the same transaction as the events
  • "Eventually consistent" projections, updated asynchronously by consuming Kafka

It also allows storing snapshots of the application state, for scenarios that implies lot of events.

These libs are based on :

  • Vavr for functional stuff (immutable List, Either, Future)
  • Akka stream for reactive streams
  • jackson for json
  • jooq to build query
  • vertx for reactive postgresql database access
  • Postgresql and kafka are the in production tested data stores

Modules

  • commons-event: POJOs that represent the stored events. Can be used by consumers to parse events.
  • thoth-core: APIs for event-sourcing
  • thoth-jooq: A jooq simple implementation of the thoth-core APIs
  • thoth-jooq-async: A jooq implementation of the thoth-core APIs using the jooq-async-apiinterface

Documentation

See our documentation.

Limits

  • A single command can't currently modify multiple entities see this issue

Development

Compile / Test

sbt compile
docker-compose -f docker-compose.test.yml up 
sbt test

Test rerun on each changes

sbt ~test
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].