Giter Site home page Giter Site logo

chinchilla-software-com / cqrs Goto Github PK

View Code? Open in Web Editor NEW
346.0 30.0 79.0 139.21 MB

A lightweight enterprise Function as a Service (FaaS) framework to write function based serverless and micro-service applications in hybrid multi-datacentre, on-premise and Azure environments.

License: GNU Lesser General Public License v2.1

C# 100.00%
cqrs azure event-sourcing akkadotnet servicebus eda microservices webjobs webapi serverless

cqrs's People

Contributors

aleenabhat12 avatar cdmdotnet avatar chinchilla-software avatar darkdaskin avatar dependabot[bot] avatar greyoy avatar gromag avatar xsamx avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cqrs's Issues

The Azure document db package not able to build the aggregate root (fetch events)

Issue with the change in e25ca98
line 52
string collectionName = string.Format("{0}::{1}", AzureDocumentDbEventStoreConnectionStringFactory.GetEventStoreConnectionCollectionName(), aggregateRootType.FullName);

was changed to:
string collectionName = string.Format("{0}", AzureDocumentDbEventStoreConnectionStringFactory.GetEventStoreConnectionCollectionName());

where as in PersitEvent method the methods are saved to the collection with the name in format as mentioned in the first line of code.

All SendAndWait/PublishAndWait methods never return

They are all incorrectly execute
(TEvent)events.SingleOrDefault(@event => @events is TEvent)
instead of
(TEvent)events.SingleOrDefault(@event => @event is TEvent)
NOTE the lack of a s in the correct method body

Race condition when applying Serivce Bus subscription filters

Task.Factory.StartNewSafely
(() =>
{
// Because refreshing the rule can take a while, we only want to do this when the value changes
string filter;
if (!ConfigurationManager.TryGetSetting(FilterKeyConfigurationKey, out filter))
return;
if (FilterKey == filter)
return;
FilterKey = filter;

This core is run twice - once for public and private topics respectively. Due to a race condition sometimes only one topic gets its subscription filter applied.

Cqrs.Domain.AggregateRoot.ApplyChange stores Changes in the wrong order

The current execution is
Changes = new ReadOnlyCollection<IEvent<TAuthenticationToken>>(new []{@event}.Concat(Changes).ToList());
and it should probably be
Changes = new ReadOnlyCollection<IEvent<TAuthenticationToken>>(Changes.Concat(new[] { @event }).ToList());
this way the order events are applied is retained as that determines the order of event storing.

Cqrs.Domain.AggregateRepository.Save will also apply the same version number to all events applied which will be problematic.

.NET Core support

Is .NET Core support on the roadmap? As of the moment, I cannot install Cqrs.net nuget packages in a .net core 2.2 project.

Concurrency issue while hosting in a cluster

AggregateRoot are applying changes with the same version number. Suspect root cause is due to us hosting in a service fabric and thus the ReaderWriterLockSlim is not shared among the clusters. Might need to use a distributed lock if that's the case?

.Net6 Support

Since the next LTS is .NET 6 and this is based on the full framework it should be brought up to standard or marked as unmaintained.

Non Akka Sagas cannot differentiate.

The Pull Request #11 added Saga support. The tests around the Akka version appear to be well enough built that the event handlers locate which instance of the saga to pass the event to, the standard saga appears to send it to a random (or all) sagas.

The standard saga tests need to be redesigned to show how to properly use sagas.

CorrelationIdHelper uninitialized when using from other thread

When I try to send a command or publish an event from a separate thread, I get a NullReferenceException in InProcessBus when it try to use CorrelationIdHelper.GetCorrelationId().

The reason is that ICorrelationIdHelper.SetCorrelationId is only used in the main thread, and when it use ICorrelationIdHelper.GetCorrelationId()from a separate thread, CallContext.GetData("CorrelationIdValue") returns null.

CQRS.NET, AKKA.NET, MassTransit and KAFKA.NET

I Love these projects and would love to use them in my project.
I trying hard to see where all will compliment and fit with each other.

How do I get a guide from you? Or Can I get a guide from you?

Kinds Regards!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.