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

แชร์
ฝัง
  • เผยแพร่เมื่อ 5 ม.ค. 2025

ความคิดเห็น •

  • @MarcoLenzo
    @MarcoLenzo  ปีที่แล้ว +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 ปีที่แล้ว +3

    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  ปีที่แล้ว +1

      Thank you very much for taking time to give feedback 🙏

  • @stanislavstudzinskyi2347
    @stanislavstudzinskyi2347 10 หลายเดือนก่อน +2

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

    • @MarcoLenzo
      @MarcoLenzo  10 หลายเดือนก่อน

      Thank you Stanislav 🙏

  • @marcelobalbuena8990
    @marcelobalbuena8990 8 หลายเดือนก่อน +2

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

    • @MarcoLenzo
      @MarcoLenzo  8 หลายเดือนก่อน

      Thank you Marcelo!

  • @omidh2007
    @omidh2007 ปีที่แล้ว +3

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

  • @kvieres
    @kvieres ปีที่แล้ว +1

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

  • @uchchhash-dev
    @uchchhash-dev 3 หลายเดือนก่อน +1

    Great video. Thanks for the precise explanation!!

    • @MarcoLenzo
      @MarcoLenzo  3 หลายเดือนก่อน

      Thank you!

  • @josedonato9471
    @josedonato9471 11 หลายเดือนก่อน +1

    Thank you Marco, great video as always

    • @MarcoLenzo
      @MarcoLenzo  11 หลายเดือนก่อน

      Thank you Jose! 🙏

  • @jwbonnett
    @jwbonnett ปีที่แล้ว +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  ปีที่แล้ว

      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 ปีที่แล้ว

      @@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  ปีที่แล้ว

      Understood! Thanks a lot for the insight

  • @ClaytonTaboneMT
    @ClaytonTaboneMT ปีที่แล้ว

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

  • @gustavosserra
    @gustavosserra 9 วันที่ผ่านมา

    This is gold!

    • @MarcoLenzo
      @MarcoLenzo  3 วันที่ผ่านมา

      Too kind!

  • @카라멜땅콩-p2p
    @카라멜땅콩-p2p ปีที่แล้ว +1

    good video