hybrid-technologies-solutions / CQELight

Licence: other
CQELight is an entreprise grade extensible and customisable framework for creating software with CQRS, DDD & Event Sourcing patterns

Programming Languages

C#
18002 projects

Projects that are alternatives of or similar to CQELight

Ultimate Backend
Multi tenant SaaS starter kit with cqrs graphql microservice architecture, apollo federation, event source and authentication
Stars: ✭ 978 (+4557.14%)
Mutual labels:  cqrs, ddd, event-sourcing, ddd-architecture
es-emergency-call
Struggling with CQRS, A+ES, DDD? We can help you!
Stars: ✭ 26 (+23.81%)
Mutual labels:  cqrs, ddd, event-sourcing, ddd-architecture
Modular Monolith With Ddd
Full Modular Monolith application with Domain-Driven Design approach.
Stars: ✭ 6,210 (+29471.43%)
Mutual labels:  cqrs, ddd, event-sourcing, ddd-architecture
Event Sourcing Jambo
An Hexagonal Architecture with DDD + Aggregates + Event Sourcing using .NET Core, Kafka e MongoDB (Blog Engine)
Stars: ✭ 159 (+657.14%)
Mutual labels:  cqrs, ddd, event-sourcing, ddd-architecture
OpenCQRS
.NET Standard framework to create simple and clean design. Advanced features for DDD, CQRS and Event Sourcing.
Stars: ✭ 546 (+2500%)
Mutual labels:  events, cqrs, ddd, event-sourcing
Kledex
.NET Standard framework to create simple and clean design. Advanced features for DDD, CQRS and Event Sourcing.
Stars: ✭ 502 (+2290.48%)
Mutual labels:  events, cqrs, ddd, event-sourcing
Event Sourcing Cqrs Examples
Event Sourcing and CQRS in practice.
Stars: ✭ 265 (+1161.9%)
Mutual labels:  events, cqrs, ddd, event-sourcing
Goes
Go Event Sourcing made easy
Stars: ✭ 144 (+585.71%)
Mutual labels:  events, cqrs, ddd, event-sourcing
EcommerceDDD
Experimental full-stack application using Domain-Driven Design, CQRS, and Event Sourcing.
Stars: ✭ 178 (+747.62%)
Mutual labels:  cqrs, ddd, event-sourcing
slack-community
Docs related to DDD-CQRS-ES Discord Community
Stars: ✭ 58 (+176.19%)
Mutual labels:  cqrs, ddd, event-sourcing
cqrs
A lightweight, opinionated CQRS and event sourcing framework targeting serverless architectures.
Stars: ✭ 155 (+638.1%)
Mutual labels:  cqrs, ddd, event-sourcing
backend
Ergonode backend repository
Stars: ✭ 100 (+376.19%)
Mutual labels:  cqrs, ddd, event-sourcing
CleanArchitecture
Clean Architecture Solution for .NET 5
Stars: ✭ 18 (-14.29%)
Mutual labels:  cqrs, ddd, event-sourcing
wolkenkit-todomvc
wolkenkit-todomvc is a todo application.
Stars: ✭ 15 (-28.57%)
Mutual labels:  cqrs, ddd, event-sourcing
Cqrs Clean Eventual Consistency
CQRS, using Clean Architecture, multiple databases and Eventual Consistency
Stars: ✭ 247 (+1076.19%)
Mutual labels:  events, cqrs, ddd
Watermill
Building event-driven applications the easy way in Go.
Stars: ✭ 3,504 (+16585.71%)
Mutual labels:  events, cqrs, event-sourcing
muon-java
Muon Core for the JVM. APIs and Microservices taken to the next level
Stars: ✭ 18 (-14.29%)
Mutual labels:  events, ddd, event-sourcing
eventcatalog
Discover, Explore and Document your Event Driven Architectures powered by Markdown.
Stars: ✭ 392 (+1766.67%)
Mutual labels:  events, ddd, eda
food-ordering-demo
Demo application focusing on the Food Ordering domain - Used in our video series
Stars: ✭ 28 (+33.33%)
Mutual labels:  cqrs, ddd, event-sourcing
awesome-talks
Awesome talks about event sourcing, cqrs, microservices, funcional programming ...
Stars: ✭ 23 (+9.52%)
Mutual labels:  cqrs, ddd, event-sourcing

CQELight

Documentation is available at : https://cqelight.readthedocs.io

Build Status Documentation Status

Description

CQELight is an entreprise grade extensible and customisable framework for creating softwares with DDD, Command Query & Event Sourcing.

DDD, CQRS and Event-sourcing are great topics, but it's not always easy to get started with them. Here's where CQELight is.

CQELight allows you to do clean loosely coupled architecture for your software developpments. Like this, you won't have to worry about technical stuff, just focus on business stuff and rely on CQELight system to help you build and run your system.

Based on Domain Driven Design, you can create your objects within boundaries, as aggregates, entities or value objects. With this clean object architecture, you can perform simple, flexible and extensible CQRS operations for interact with the system.

Moreover, CQELight bundle a bunch of tools used in all entreprise-grade projects such as IoC or Data Access Layer, among other things.

Available packages :

Extension name Stable
CQELight NuGet
AspNetcore NuGet
InMemory Bus NuGet
RabbitMQ Bus NuGet
Azure Service Bus NuGet
Autofac IoC NuGet
Microsoft Extensions DependencyInjection IoC NuGet
MongoDb EventStore NuGet
EF Core EventStore NuGet
EF Core DAL NuGet
MongoDb DAL NuGet
TestFramework NuGet
MVVM NuGet
MVVM - MahApps implementation NuGet

Quick getting started - The 'Hello World!' example

To get really quick started, create a new console application

dotnet new console

Edit your csproj to use latest C# version

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp3.1</TargetFramework>
    <LangVersion>latest</LangVersion>
  </PropertyGroup>

</Project>

Add CQELight & CQELight.Buses.InMemory packages

dotnet add package CQELight | dotnet add package CQELight.Buses.InMemory

Create a new class GreetingsEvent.cs and add the following content

using CQELight.Abstractions.Events;
namespace HelloWorld.Events
{
    class GreetingsEvent : BaseDomainEvent
    {
    }
}

Create a new class GreetingsEventHandler.cs and add the following content

using CQELight.Abstractions.Events.Interfaces;
using CQELight.Abstractions.DDD;
using HelloWorld.Events;
using System;
using System.Threading.Tasks;

namespace HelloWorld.Handlers
{
    class GreetingsEventHandler : IDomainEventHandler<GreetingsEvent>
    {
        public Task<Result> HandleAsync(GreetingsEvent domainEvent, IEventContext context = null)
        {
            Console.WriteLine("Hello world!");
            return Result.Ok();
        }
    }
}

Modify Program.cs as following

using CQELight;
using CQELight.Dispatcher;
using HelloWorld.Events;
using System;
using System.Threading.Tasks;

namespace HelloWorld
{
    class Program
    {
        static async Task Main(string[] args)
        {
            new Bootstrapper()
                .UseInMemoryEventBus()
                .Bootstrapp();

            await CoreDispatcher.PublishEventAsync(new GreetingsEvent()).ConfigureAwait(false);

            Console.Read();
        }
    }
}

Then, execute dotnet run, Hello World! should be visible on console

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