Giter Site home page Giter Site logo

eventsourcing's People

Contributors

dangminhbk avatar jacqueskang 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

eventsourcing's Issues

Handling concurrency

Does this sample handle concurrency ?

Let's say I created a gift card with an initial value of 100 and executed two request at the same time to debit 40 points for the first request and 50 points for the second request.
I might end up with a gift card value of 60 or 50 after the two operations have been processed. Is this possible ?

Thanks in advance

Great library! Should the DateTimes be changed to DateTimeOffset?

Wow! Thank you so much for developing this and making it publicly available. I only started researching event sourcing and CQRS this week, having looked at DDD more generally a few months back. Your library has been really educational in helping me understand the concepts and is starting to become useful now that I'm working through examples of my own.

One small point (maybe you think it's pedantic). Seeing as timestamps are so important to the auditability of the system, which could be deployed across servers (and accessed by clients) in different time-zones, shouldn't your DateTime objects be DateTimeOffset instead.

If I understand correctly, this is the standard recommended for most use cases by Microsoft:

The uses for DateTimeOffset values are much more common than those for DateTime values. As a result, consider DateTimeOffset as the default date and time type for application development.

https://docs.microsoft.com/en-us/dotnet/standard/datetime/choosing-between-datetime

Maybe I'm totally wrong, in which case, sorry. But if I'm right, it should be an easy fix, right?

Snapshots

Hi Jacques,

I recently stumbled upon your library when going through stackoverflow, and I must say I'm very impressed. Great work!

I was wondering whether you're planning to include snapshot capability to the library.

Cheers

TakeSnapshot Problem

Can provide option for TakeSnapshot method replace old snapshot rather than add new version snapshot

Hot to make the aggregate thread-safe (suggestions)?

As far as I understand the aggregates are not thread-safe.

I am looking to see how we could implement a thread-safe aggregate without introducing some distributed locking using DynamoDB or Redis.

An example scenario is if you have an ASP.NET REST API and consider the following endpoints for the same user aggregate invoked in parallel from a front end client it can result in weird results in event data (skipped version, dynamodb streams INSERT and MODIFY events writing the same aggregate ID and Version for different events).

  1. /create
  2. /set-email
  3. /set-preferences
  4. /set-profile-picture

Any ideas?

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.