Event Sourcing and CQRS Explained | When should you use them?

Поділитися
Вставка
  • Опубліковано 15 лис 2024

КОМЕНТАРІ • 24

  • @MarcoLenzo
    @MarcoLenzo  11 місяців тому +3

    Do you have experience with event sourcing and CQRS? Would you recommended it to a fresh software development team? Let us know! 🤓🤓🤓

  • @LawZist
    @LawZist 11 місяців тому +2

    I very much agree with your conclusion! In my company I’m working at, we use event sourcing only for audit and investigation purposes as you mentioned. We still keep records in the “traditional” crud way (we don’t build current state from event sourcing )

    • @MarcoLenzo
      @MarcoLenzo  11 місяців тому +1

      Thank you very much for taking time to give feedback 🙏

  • @stanislavstudzinskyi2347
    @stanislavstudzinskyi2347 8 місяців тому +2

    Priceless. Thank you so much, Marco, for your efforts

    • @MarcoLenzo
      @MarcoLenzo  8 місяців тому

      Thank you Stanislav 🙏

  • @marcelobalbuena8990
    @marcelobalbuena8990 6 місяців тому +2

    Good short and still comprehensive summary of this pattern. I will definitely consider your pros and cons in our architecture. Thanks Marco!

  • @omidh2007
    @omidh2007 10 місяців тому +3

    Thanks, Marco. The concepts are mentioned clearly and deftly. ✌

  • @kvieres
    @kvieres 11 місяців тому +1

    Really god information.. totally agree with your conclusion...

  • @uchchhash-dev
    @uchchhash-dev Місяць тому +1

    Great video. Thanks for the precise explanation!!

  • @josedonato9471
    @josedonato9471 9 місяців тому +1

    Thank you Marco, great video as always

    • @MarcoLenzo
      @MarcoLenzo  9 місяців тому

      Thank you Jose! 🙏

  • @ClaytonTaboneMT
    @ClaytonTaboneMT 11 місяців тому

    Another great video! Great and concise explainer on Event Sourcing and CQRS, with a sprinkle of Magic Architecture Dust 😂

  • @jwbonnett
    @jwbonnett 11 місяців тому +1

    CQRS can also be strong consistancy, it depends on the architecture of the app, for instance, only replying in the event of completing the data projection write. It can also be done with little delay, pretty much inconceivable to the user and has little effect on the system.
    It is also not forbidden to modify an event, it's just not recommended due to increased complexity and time burden as it can have a ripple effect for any event that comes after.
    I would actually recommend using event sourcing, simply due to the fact that you can trade complexity from other things, like database design for new services and features. This is because it is a 100% code first approach. It also matches more closely to a business process, meaning process to code is a lot more simple as you just copy the process rules and can't be accused of not following the business rules.

    • @MarcoLenzo
      @MarcoLenzo  11 місяців тому

      Thank you very much for the feedback! I do have a question (end of this answer).
      I agree that within the same process, it is possible to have strong consistency very easily.
      I also agree that you can modify an event. However, I feel you'd be bending the original definition quite a lot since the immutability of events is what gives stronger auditing guarantees compared to other paradigms. If you allowed the event log to be rewritten, it would lose value in that sense. However, it is always a question of what matters the most in your application.
      The complexity topic is the bit where I am the most torn. I have read in multiple texts that when modeling events (e.g. in event storming) it is easier to keep a direct mapping with the business rules. I can see that. The bit where I get lost is that in my mind, the complexity is shifted further where we materialize events into projections / model / views. Isn't it typical domain modeling still necessary there?

    • @jwbonnett
      @jwbonnett 11 місяців тому

      @@MarcoLenzo It can be done easily even if it is not in the same process, I do it all the time as it doesn't take enough time to warrent eventual consitancy, it's a little more work, though it is worth it for strong consistancy.
      That is why I said that it is not recommended. Just outright saying it is strict is confusing to beginners, in reality it is just best practice.
      Projections don't have to be a strict structure, it can still be in the format of a payload, so modeling isn't needed still. This will also mean no mapping to an object before returning. Though I may add you can still map and query quite easily with little overhead, but the point of projections is not to have joins or complex queries due to the overhead they bring.

    • @MarcoLenzo
      @MarcoLenzo  11 місяців тому

      Understood! Thanks a lot for the insight

  • @카라멜땅콩-p2p
    @카라멜땅콩-p2p 11 місяців тому +1

    good video