Event-Driven Architecture: Explained in 7 Minutes!

แชร์
ฝัง
  • เผยแพร่เมื่อ 22 พ.ค. 2024
  • Event-driven architecture is an essential architectural pattern used with microservices. In this video, I cover what it is, when you should use it and the pros and cons.
    ☕️ I don’t accept paid sponsorships and I have turned off mid-video ads. You’re welcome! If you would like to support my channel see: ko-fi.com/alexhyett
    📨 Join my free weekly newsletter for advice, technology and more: newsletter.alexhyett.com
    🗺️ Backend Developer Roadmap: www.alexhyett.com/backend-dev...
    📝 Related blog post: www.alexhyett.com/event-drive...
    🎓 RECOMMENDED COURSES (Use code FRIENDS10 for 10% off)
    The Complete Web Developer Course - academy.zerotomastery.io/a/af...
    The Complete Junior to Senior Web Developer Roadmap - academy.zerotomastery.io/a/af...
    Complete SQL + Databases Bootcamp - academy.zerotomastery.io/a/af...
    📚 RECOMMENDED BOOKS
    Clean Code - geni.us/5AEwj2
    Domain Driven Design - geni.us/WiR0Q0x
    Design Patterns - geni.us/5ncUt
    Developer Hegemony - geni.us/lAXy
    Pragmatic Programmer - geni.us/GfNj9
    Data Structures and Algorithms Made Easy - geni.us/sqg6kJ
    Refactoring - geni.us/ufAP0mE
    Pragmatic Thinking and Learning - geni.us/x81A
    Microservices - geni.us/8vMA
    🚀 MY FAVOURITE TOOLS
    PIA VPN - piavpn.com/AlexHyett (86% off)
    Visual Studio Code - code.visualstudio.com/
    Obsidian - obsidian.md/
    Notion - affiliate.notion.so/alexhyett
    ⏳ TIMESTAMPS
    00:00 - What is Event Driven Architecture?
    02:24 - When to use it?
    03:12 - Advantages
    04:41 - Disadvantages
    You can check out more of my favourite tools on my website:
    www.alexhyett.com/tech/
    🔗 MY KEY LINKS
    🌍 Blog - www.alexhyett.com/
    🐘 Mastodon - social.alexhyett.com/@alex
    🧑‍💻 WHO AM I
    I’m Alex, a Software Developer and TH-cam working in the UK. I make videos about software development to help developers with the skills they need to be senior developers. As well as this TH-cam Channel, I also write articles on my website (alexhyett.com) as well as write a regular newsletter that contains some thoughts to help aspiring developers.
    ‼️ DISCLAIMERS
    Some of the links in this description are affiliate links, for which I get a small commission, at no extra cost to you 🙂. I appreciate you supporting my channel so I can continue providing you with free software development content!
    #coding #programming #developer
  • วิทยาศาสตร์และเทคโนโลยี

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

  • @faheemshahidkc
    @faheemshahidkc 3 หลายเดือนก่อน +2

    i am so happy to easy this. because i am a self learning software developer. thanks a looot!!!!
    keep going!

  • @RishiRajxtrim
    @RishiRajxtrim 4 วันที่ผ่านมา

    thank you very much for covering so many aspects... so well.

  • @selebogosegatlaka4190
    @selebogosegatlaka4190 2 หลายเดือนก่อน

    Amazing videos man, keep them coming. Thanks!

  • @thenullpointer
    @thenullpointer 10 หลายเดือนก่อน +11

    Hi! Nice explanation! I appreciate the balanced approach to discussing the pros and cons of event-driven architecture. It's important to consider both sides before making a decision, especially eventual consistency, and this video did a great job of laying that out!

    • @alexhyettdev
      @alexhyettdev  9 หลายเดือนก่อน +1

      Thank you! I am glad you enjoyed it!

  • @smouflih
    @smouflih 2 หลายเดือนก่อน

    Great explanation, thank you !

  • @joaopedrorocha4790
    @joaopedrorocha4790 2 หลายเดือนก่อน +5

    Feels like the observer pattern but through a network.

  • @vasanthbalaji4768
    @vasanthbalaji4768 4 หลายเดือนก่อน

    Good and very detailed explanation.

  • @MarinaMarina-fr8ex
    @MarinaMarina-fr8ex 5 หลายเดือนก่อน

    Great video!

  • @ArunChapagain-ir8st
    @ArunChapagain-ir8st หลายเดือนก่อน

    I love this explanation.. Great guy

  • @39_ganesh_ghodke98
    @39_ganesh_ghodke98 หลายเดือนก่อน

    Thank you for this amazing video

  • @fuadadio
    @fuadadio 4 วันที่ผ่านมา

    Great video.

  • @seanelias6478
    @seanelias6478 5 หลายเดือนก่อน +1

    Thank you for the amazing explanation

    • @alexhyettdev
      @alexhyettdev  4 หลายเดือนก่อน +1

      Glad it was helpful!

  • @mundakamaal302
    @mundakamaal302 ปีที่แล้ว +2

    Hi Alex, your videos are precise, short and informative. I am loving it and watching it, however on this specific video, wouldn’t it be great to provide more comparative aspect between messages and event based architecture along with more used cases for each?

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

      Thank you! Yes, I will make sure I do some videos on that in the future. I didn't want to cram too much in my first video on the topic.

  • @SPribyt
    @SPribyt 2 หลายเดือนก่อน

    thank you!

  • @takatakboy
    @takatakboy 9 หลายเดือนก่อน

    Wow this is the easiest explainer of event driven architecture I've seen! Thank you so much. I used to work with WCF and MSMQ and I feel it's kinda the same except for the fact there's no broker that pushes the events to consumers. I'm kinda curious what the event message looks like in the event driven architecture way of things.

    • @alexhyettdev
      @alexhyettdev  8 หลายเดือนก่อน +1

      You're very welcome! The event messages can vary quite depending on who is implementing them. Some prefer small messages that just mention that an event occurred. This therefore requires the consumer to call the producer to get more information. Others create quite detailed events that contain all the information that a user would need.
      As a producer, it can be a bit of a balancing act between having to constantly add new information to an event which is likely also available via API or having consumers also call your API for every event that comes in.

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

      @@alexhyettdev thank you so much for detailing that! The fun in there is choosing what approach to take then. Might need more experience to find out what kind of event messages to send (from very verbose to just a request to have them poll from the producer the related info)

    • @alexhyettdev
      @alexhyettdev  8 หลายเดือนก่อน +1

      It mostly comes down to performance. If you need to process hundreds or thousands of events a second you don't want to have to go off to an API to get more information.

  • @nkulmati
    @nkulmati 7 หลายเดือนก่อน +1

    A brief dive into queue-based vs log-based would help to make this more complete (eg rabbitmq vs kafka)

    • @alexhyettdev
      @alexhyettdev  7 หลายเดือนก่อน

      Sure I will add it to the list and I can do a video on that in the future.

  • @spolio8795
    @spolio8795 7 หลายเดือนก่อน

    Very clear thank you! +1 subscriber! :)

    • @alexhyettdev
      @alexhyettdev  7 หลายเดือนก่อน +1

      Thank you, I am glad it was useful.

  • @abdelbassetomiri530
    @abdelbassetomiri530 9 หลายเดือนก่อน

    Hello, great video. I am fairly new to this, would you use EDA for this use case:
    due to Regulatory reasons the company needs to forward emails to certain recipients in the event of an agree-upon trigger. I am sorry if the question is too specific. keep up the good work.

    • @alexhyettdev
      @alexhyettdev  9 หลายเดือนก่อน

      Thanks. Yes, that is quite specific and a difficult one to answer without knowing the system in detail. In theory, you could raise an EmailSent event but you would still need to read the message for the trigger word and then forward it.

  • @olliDeg
    @olliDeg 9 หลายเดือนก่อน

    Great video! One questing about 3:53: Wouldn't you have the same kind of reliability if you installed a broker between the two services in an event driven architecture, as this would introduce asynchronous execution?

    • @alexhyettdev
      @alexhyettdev  9 หลายเดือนก่อน

      Yes if reliability is your only concern then an event broker would work too. Event-driven architecture does tend to change how you view the architecture of your whole application.

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

    On an "API driven architecture", you have consistency problems too.
    When a microservice calls another microservice, they aren't bound to the same transaction (unless using 2PC).
    Futhermore, it's hard to manage rollbacks in case of rest call failure.
    The structure can become really fragile easily.

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

      Yes they both have consistency problems. I am not sure anyone has come up with a way around that without causing scaling problems.

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

      @@alexhyettdev There is no solution on distributed environnements (CAP theorem)

  • @SiiitiiFreelancing-jl3ty
    @SiiitiiFreelancing-jl3ty หลายเดือนก่อน

    can you suppress that background barking kind of sound that emits from your laptop when you are running thru the slides

  • @codewithkashif
    @codewithkashif 9 หลายเดือนก่อน

    Great tutorial! One important question -- Is there any difference between Event Driven Architecture and Reactive Programming?

    • @alexhyettdev
      @alexhyettdev  9 หลายเดือนก่อน

      Not really, reactive programming is generally implemented using an event based system.

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

    i couldnt understand 1:22-1:30, can you please elaborate on that?

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

    Won't broker in event driven architecture is similar to Orchestrator ?

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

      An orchestrator handles everything including the communication back to the parent service. The event broker on the other hand just passes events along for services that are subscribed. Orchestration is pretty much the opposite of event driven architecture.

  • @anaz6794
    @anaz6794 8 หลายเดือนก่อน +1

    You could decrease the background music

  • @ggroch95
    @ggroch95 5 หลายเดือนก่อน +10

    Great content! But this sound effect every time when slide appears is suuuuuuper annoying...

    • @shafiq_ramli
      @shafiq_ramli 5 หลายเดือนก่อน

      Same

    • @alexhyettdev
      @alexhyettdev  5 หลายเดือนก่อน +1

      Noted!

    • @shafiq_ramli
      @shafiq_ramli 5 หลายเดือนก่อน

      Keep up the good work! @@alexhyettdev

    • @Vitoria-rv7bx
      @Vitoria-rv7bx 4 หลายเดือนก่อน +1

      I like it actually

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

      I didn’t start feeling annoyed until you said that 😅

  • @Tony-dp1rl
    @Tony-dp1rl 7 หลายเดือนก่อน +1

    Nice video, really liked it, but I get the feeling you dragged "eventual consistency" kicking and screaming into your example of services being slow to pick up events. It probably doesn't belong there, as that term is more about data consistency between different databases ... even though it could be related in some scenarios I guess.

    • @alexhyettdev
      @alexhyettdev  7 หลายเดือนก่อน +1

      Haha I love the analogy. Yes it definitely depends on the scenario. A lot of the time when I have used EDA is where I have had reporting systems fed from it hence it coming up.

  • @user-mx8ij4tk6i
    @user-mx8ij4tk6i ปีที่แล้ว

    What if a subscriber can't keep up with the events produced by the producer?

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

      It is just a case of scaling up the number of subscribers. Of course, this can have its own limitations. There might be a bottleneck downstream that caps how many events you can process. This is especially true if each of those subscribers is writing to the same database. This is where you need to start looking at things such as database sharding or caching all the reads.

    • @user-mx8ij4tk6i
      @user-mx8ij4tk6i ปีที่แล้ว +1

      @@alexhyettdev Thanks, great video by the way!

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

      @@user-mx8ij4tk6i Thanks!

  • @judevector
    @judevector 5 หลายเดือนก่อน

    I like the explanation but one thing that i so much wanted but it seems lacking in the video is showing us how it's done or where it's used in real life applications, this is what makes the video relatable not just telling us the advantages and disadvantages. How do I know ad and disadv when i don't even know how it works in a real life application
    Great video tho

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

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

      I am not sure if that emoji is pointing upwards or giving me the finger 🤣. I hope it’s the former!