Monday, May 20, 2019

CQRS for e-wallet app

My team is about to start project that will store credits that you can earn, buy, spend, convert. It must handle millions of users and 100k transactions a day.

I am CQRS practitioner since 2years now, but I have no experience in ES.

Do you think CQRS+ES would be good fit for such project?

I spent last 2 weeks learning CQRS+ES, but the more I read, the more confused I am. There is no single complete course on it (udemy, pluralisght, lynda). Tutorials mostly focus on concepts (which I understand) but misses real life, complex implementation scenarios, e.g.: - how to replay 100million events to create new projection? - how to exactly implement snapshot mechanism? - there should be 1 event store per 1 aggregate root? or 1 event store per app? - how to handle situation when event schema changes? how you "fix" your already existing events in event store? - what should be a key of an event in NoSQL db? AggregateID+EventNumber? you need to somehow keep an order of events. - order of events should be kept per aggregate instance? aggregate class? or per whole app?

I am worried that if my team proceed with CQRS+ES we may fail misserably due to above concerns. On the other hand if we go with just CQRS and single RDBM our system can fail under heavy load.

CQRS for e-wallet app Click here
  • Blogger Comment
  • Facebook Comment

0 comments:

Post a Comment

The webdev Team