All Projects → pavankjadda → KafkaStream-CQRS-EventSourcing

pavankjadda / KafkaStream-CQRS-EventSourcing

Licence: GPL-3.0 license
Event Sourcing(CQRS) and Materialized views with Kafka Streams

Programming Languages

java
68154 projects - #9 most used programming language
HTML
75241 projects

Projects that are alternatives of or similar to KafkaStream-CQRS-EventSourcing

football-events
Event-Driven microservices with Kafka Streams
Stars: ✭ 57 (+159.09%)
Mutual labels:  cqrs, event-sourcing, kafka-streams
e-shop
Sample Spring Cloud microservices e-shop.
Stars: ✭ 48 (+118.18%)
Mutual labels:  cqrs, event-sourcing, kafka-streams
Proophessor Do
prooph components in action
Stars: ✭ 247 (+1022.73%)
Mutual labels:  cqrs, event-sourcing
Conduit
RealWorld example backend implementing the CQRS/ES pattern in Elixir and Phoenix
Stars: ✭ 253 (+1050%)
Mutual labels:  cqrs, event-sourcing
nest-convoy
[WIP] An opinionated framework for building distributed domain driven systems using microservices architecture
Stars: ✭ 20 (-9.09%)
Mutual labels:  cqrs, event-sourcing
kafka-scala-examples
Examples of Avro, Kafka, Schema Registry, Kafka Streams, Interactive Queries, KSQL, Kafka Connect in Scala
Stars: ✭ 53 (+140.91%)
Mutual labels:  schema-registry, kafka-streams
Event Sourcing
Provides basic functionality for event sourced aggregates.
Stars: ✭ 242 (+1000%)
Mutual labels:  cqrs, event-sourcing
workflow
Functional CQRS Eventsourcing Engine
Stars: ✭ 22 (+0%)
Mutual labels:  cqrs, event-sourcing
Dotnet New Caju
Learn Clean Architecture with .NET Core 3.0 🔥
Stars: ✭ 228 (+936.36%)
Mutual labels:  cqrs, event-sourcing
fee-office
A DDD, CQRS, ES demo application
Stars: ✭ 35 (+59.09%)
Mutual labels:  cqrs, event-sourcing
wolkenkit-eventstore
wolkenkit-eventstore is an open-source eventstore for Node.js that is used by wolkenkit.
Stars: ✭ 79 (+259.09%)
Mutual labels:  cqrs, event-sourcing
endless
Scala library to describe sharded and event sourced entities using tagless-final algebras
Stars: ✭ 70 (+218.18%)
Mutual labels:  cqrs, event-sourcing
Watermill
Building event-driven applications the easy way in Go.
Stars: ✭ 3,504 (+15827.27%)
Mutual labels:  cqrs, event-sourcing
CleanArchitecture
Clean Architecture Solution for .NET 5
Stars: ✭ 18 (-18.18%)
Mutual labels:  cqrs, event-sourcing
Wolkenkit Boards
wolkenkit-boards is a team collaboration application.
Stars: ✭ 236 (+972.73%)
Mutual labels:  cqrs, event-sourcing
microservice framework version 6
A Java framework to support applications utilising CQRS and Event Sourcing architectures
Stars: ✭ 25 (+13.64%)
Mutual labels:  cqrs, event-sourcing
akka-persistence-foundationdb
A replicated Akka Persistence journal backed by FoundationDB
Stars: ✭ 43 (+95.45%)
Mutual labels:  cqrs, event-sourcing
Pos
Sample Application DDD, Reactive Microservices, CQRS Event Sourcing Powered by DERMAYON LIBRARY
Stars: ✭ 207 (+840.91%)
Mutual labels:  cqrs, event-sourcing
Digital Restaurant
DDD. Event sourcing. CQRS. REST. Modular. Microservices. Kotlin. Spring. Axon platform. Apache Kafka. RabbitMQ
Stars: ✭ 222 (+909.09%)
Mutual labels:  cqrs, event-sourcing
nest-microservices
Small user management system using nest microservices
Stars: ✭ 35 (+59.09%)
Mutual labels:  cqrs, event-sourcing

Event Sourcing and Materialized views with Kafka Streams

Introduction

Kafka helps you to build fast, high through put, fault tolerance, scalable microservices and applications. Kafka Streams stores data in Kafka Clusters (Kafka State Stores) and gets data wicket fast.

This repository demonstrates CQRS Event Sourcing (Materialized views) with Kafka Streaming (Version: 2.1.0)

  1. In typical production environment, we have multiple microservices with dedicated database and we want to perform multiphase commit to each database.
  2. Let's say if the user wants place an order in eShopping application, we can have different microservices to do the following operations (a) Check the inventory for the requested product (Inventory MicroService takes care of this) (b) Check the if any Payment method available and process payment(Payments MicroService takes care of this) (c) Get Shipping Address and Billing Address (Customer Management MicroService takes care of this)
  3. If anyone of the above microservice fails, we want to roll back the transaction and roll back updates made to microservices
  4. In this repository you can send customers, orders and greetings(test) events through UI and processed in the listener/receiver then stored in Kafka State Stores, which then accessed through REST API implemented through Jetty Server (Not MicroServices REST API)

How to Run?

  1. Use confluent docker installation for the faster steup or Download Kafka from Confluent and install it using the quick start guide
  2. Clone this repository and open in IntelliJ or Eclipse as maven project and run KafkaStreamApplication class. This will bring up producer class.
  3. Go to http://localhost:9021 => Topics=> create topics customer, order,customer-order,greetings,customer-to-ktable-topic and order-to-ktable
  4. Go to EventsListener class and execute main method to start REST Proxy (Jetty) which accesses Kafka Materialized views data through REST API
  5. Go to http://localhost:8080/ to send events and retrieve and see data from Kafka Materialized views
    1. EventsSender application and Jetty Server run on different ports on the same machine. I used RestTemplate to get data from Kafka Materialized views and show it in HTML pages
  6. Modify code, if you want to send events with different information.

Technologies Used

  1. Kafka Streams (Confluent)
  2. Materialized views and Kafka State Stores
  3. REST Api using Jetty Server
  4. Confluent Schema Registry
  5. Avro Serializer/Deserializer
  6. Spring Boot
  7. Java 8

Note: For Kafka messaging implementation please look at this repository

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