All Projects → dmart28 → Reveno

dmart28 / Reveno

Licence: apache-2.0
⚡ High performance and low latency Event Sourcing/CQRS framework

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Reveno

RCM
RCM is a simple CRM application designed for Auto Parts Store made with ASP.NET Core based on DDD, CQRS and SOLID Principles.
Stars: ✭ 29 (-89.75%)
Mutual labels:  cqrs, event-sourcing
Event Sourcing Cqrs Examples
Event Sourcing and CQRS in practice.
Stars: ✭ 265 (-6.36%)
Mutual labels:  event-sourcing, cqrs
NanoLogLite
A revised version of NanoLog which writes human readable log file, and is easier to use.
Stars: ✭ 18 (-93.64%)
Mutual labels:  high-performance, low-latency
iam-ddd-cqrs-es-nestjs
Identity and Access Management
Stars: ✭ 34 (-87.99%)
Mutual labels:  cqrs, event-sourcing
Benthos
Fancy stream processing made operationally mundane
Stars: ✭ 3,705 (+1209.19%)
Mutual labels:  event-sourcing, cqrs
user
A domain layer providing basic user management
Stars: ✭ 14 (-95.05%)
Mutual labels:  cqrs, event-sourcing
Kafka-quickstart
Kafka Examples focusing on Producer, Consumer, KStreams, KTable, Global KTable using Spring, Kafka Cluster Setup & Monitoring. Implementing Event Sourcing and CQRS Design Pattern using Kafka
Stars: ✭ 31 (-89.05%)
Mutual labels:  cqrs, event-sourcing
MediatrTutorial
CQRS implementation in ASP.NET Core using MediatR in .NET 5
Stars: ✭ 88 (-68.9%)
Mutual labels:  cqrs, event-sourcing
OpenCQRS
.NET Standard framework to create simple and clean design. Advanced features for DDD, CQRS and Event Sourcing.
Stars: ✭ 546 (+92.93%)
Mutual labels:  cqrs, event-sourcing
zio-event-sourcing
Purely functional concurent and scalable persistance layer implementing CQRS
Stars: ✭ 34 (-87.99%)
Mutual labels:  cqrs, event-sourcing
memo
A CQRS and Event Sourcing blogging playground to explore Axon Framework
Stars: ✭ 14 (-95.05%)
Mutual labels:  cqrs, event-sourcing
Emitter
High performance, distributed and low latency publish-subscribe platform.
Stars: ✭ 3,130 (+1006.01%)
Mutual labels:  high-performance, low-latency
implementing-cqrs-in-elixir
An introduction to implementing Command Query Responsibility Segregation (CQRS) in Elixir applications.
Stars: ✭ 17 (-93.99%)
Mutual labels:  cqrs, event-sourcing
node-cqrs
CQRS backbone with event sourcing for Node.js
Stars: ✭ 63 (-77.74%)
Mutual labels:  cqrs, event-sourcing
delta
DDD-centric event-sourcing library for the JVM
Stars: ✭ 15 (-94.7%)
Mutual labels:  cqrs, event-sourcing
daruma-backend
🎎 Shared Expense Manager (Backend) - NestJS+DDD+CQRS+Event Sourcing 🎎
Stars: ✭ 70 (-75.27%)
Mutual labels:  cqrs, event-sourcing
ftgogo
FTGOGO - event-driven architecture demonstration application using edat
Stars: ✭ 82 (-71.02%)
Mutual labels:  cqrs, event-sourcing
dudulina
CQRS + Event Sourcing library for PHP
Stars: ✭ 53 (-81.27%)
Mutual labels:  cqrs, event-sourcing
order-demo
Axon demo - `Order Management` Information System - A part of the systems landscape https://github.com/fraktalio/courier-demo, https://github.com/fraktalio/restaurant-demo, https://github.com/fraktalio/order-demo
Stars: ✭ 72 (-74.56%)
Mutual labels:  cqrs, event-sourcing
Object threadsafe
We make any object thread-safe and std::shared_mutex 10 times faster to achieve the speed of lock-free algorithms on >85% reads
Stars: ✭ 280 (-1.06%)
Mutual labels:  high-performance, low-latency

Gitter Download

Reveno | Event-Sourcing CQRS framework

Reveno is thoroughgoing lightning-fast, durable and yet simple async transaction processing JVM based framework made to fit your domain in first place. It's highly influenced by patterns/approaches like Event Sourcing, CQRS, Zero-Copy, DDD, Mechanical Symphaty.

High performance with low latency

Able to process millions of transactions per second with mean latency measured by tens of microseconds on an average hardware, thus delivering the result with the speed of lightning.

Durability

A rich set of configurations for journaling, in-memory model snapshotting and clustered failover replication makes the system totally reliable, so you make sure no single bit of data is lost.

Easy to code, fluent API

We kept simplicity at heart of the project so that you can concentrate only on a domain model and transactional business logic, and let Reveno do the rest dirty work for you.

Most of todays solutions are suffering from excessively complex architecture and hard maintainable infrastructure, not to mention an overall maintenance cost of them.

The purpose of Reveno is to give an easy domain-oriented development tool with simple and transparent infrastructure, with perfectly fitted components for max performance. But easy doesn't mean simplistic. Instead, we are different in intention to give you as many options as possible, so you can choose the best one for you.

Few highlights:

  • Reveno is an in-memory transactional event-driven framework with CQRS and Event Sourcing intruded. See our Architecture overview
  • Reveno is based on JVM and written fully in Java.
  • Reveno is fast - Able to process millions of transaction per second with microseconds latency.
  • Reveno is domain oriented - your primary focus will be on the core domain and domain logic only.
  • Reveno is modular - use only components you really need to.
  • Reveno is GC-friendly - despite it is general purpose framework, we minize the costs as much as possible.
  • Reveno is robust - we have much durability options as well as failover replication among cluster, pre-allocated volumes and much more.
  • Reveno is lightweight. The core is about 300kb only.

Installation

Maven repository

The current list of available artifacts in Maven consists of:

  • reveno-core – includes all Reveno core packages, responsible for engine initialization, transaction processing, etc.
  • reveno-metrics – includes packages, responsible for gathering metrics from working engine, and sending them to Graphite, Slf4j, etc.
  • reveno-cluster – makes it possible to run Reveno in cluster with Master-Slave architecture, thus providing decent failover ability.

Importing last version

Maven

<dependencies>
    <dependency>
        <groupId>org.reveno</groupId>
        <artifactId>reveno-core</artifactId>
        <version>1.23</version>
    </dependency>
    <dependency>
        <groupId>org.reveno</groupId>
        <artifactId>reveno-cluster</artifactId>
        <version>1.23</version>
    </dependency>
</dependencies>

Gradle

dependencies {
    compile 'org.reveno:reveno-core:1.23'
    compile 'org.reveno:reveno-cluster:1.23'
}

Sample usage

This example is not a quite useful in reality, but can give you a very good look at how easily relatively complex things can be done. For more real case example, we strongly encourage you to look at our examples.

Reveno reveno = new Engine("/tmp/reveno-sample");
reveno.config().mutableModel();

reveno.domain()
	.transaction("createAccount", (t,c) ->
		c.repo().store(t.id(), new Account(t.arg())))
	.uniqueIdFor(Account.class).command();

reveno.domain()
	.transaction("changeBalance", (t,c) -> 
		c.repo().get(Account.class, t.arg()).balance += t.intArg("inc"))
	.command();

reveno.startup();

long accountId = reveno.executeSync("createAccount", map("name", "John"));
reveno.executeSync("changeBalance", map("id", accountId, "inc", 10_000));

reveno.shutdown();

Quick start guide

For the quick start guide and other very useful documentation, go to our page http://reveno.org

Javadoc

Our javadoc page can be found here

Support

Google Groups | Email support | Issues

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].