Publisher Subscriber Pattern - Build your own .NET Message Broker

Поделиться
HTML-код
  • Опубликовано: 26 мар 2023
  • In this video we take a look at the Publisher / Subscriber pattern (otherwise know as Pub/Sub) that's used to facilitate distributed systems interactions in a decoupled way. To fully explore this topic, we build a Message Broker app step by step, then introduce an additional lightweight subscriber app.
    🌐 Links 🌐
    💾 GitHub Repo: github.com/binarythistle/S06E...
    🎓 My other courses: lesjackson.net
    📕 My Book: link.springer.com/book/10.100...
    🤩 Patreon: / binarythistle
    🌲 Linktree: linktr.ee/binarythistle
    🔗 Publisher Subscriber Pattern: learn.microsoft.com/en-us/azu...
    🔗 Installing EF Core Tools: learn.microsoft.com/en-us/ef/...
    🔗 DBeaver: dbeaver.io/download/
    ⏲️ Time Codes ⏲️
    Introduction & Theory
    ----------------------------------
    - 0:42 - Welcome
    - 1:15 - Demo
    - 5:05 - Call to action
    - 5:42 - Theory
    - 9:23 - Solution Architecture
    - 12:01 - Scaffold the Broker
    - 16:11 - Data Model
    - 19:17 - Message State
    Message Broker Coding
    ---------------------------------------
    - 20:30 - Models
    - 25:52 - DB Context
    - 30:51 - Migrations
    - 33:48 - DBeaver
    - 35:38 - Endpoints overview
    - 37:12 - Create Topic Endpoint
    - 41:12 - Get Topics Endpoint
    - 42:54 - Create & Get Topics with Insomnia
    - 46:10 - Publish Message Endpoint
    - 55:14 - Test Publish #1
    - 57:37 - Create Subscription
    - 1:02:02 - Test Subscription Create
    - 1:03:49 - Re test publish message
    - 1:05:02 - Get messages for subscription
    - 1:11:06 - Test get messages endpoint
    - 1:15:53 - Acknowledgement endpoint
    - 1:21:14 - Text ack endpoint
    Subscriber Coding
    ------------------------------
    - 1:23:28 - Scaffold Subscriber
    - 1:25:04 - Message Read DTO
    - 1:27:12 - Read Messages function
    - 1:34:37 - Acknowledge messages function
    - 1:37:36 - Polling routine
    - 1:40:51 - End to End testing
    - 1:44:44 - Patreon Credits

Комментарии • 24

  • @Mauri0784
    @Mauri0784 Год назад +2

    Great content, now I have something to look forward to do after work today ;). Thank you for these amazing videos.

  • @arunas554
    @arunas554 Год назад

    I am very grateful for your generous work 🙂

  • @ultima861005
    @ultima861005 Год назад +1

    learning a lot from your video tutorial, appreciate it a lot, big up Les

  • @cojucovschiion6339
    @cojucovschiion6339 Год назад +1

    Good video, very clear explained.

  • @arpitshukla5008
    @arpitshukla5008 Год назад +1

    Thank you for this amazing video

  • @Radhakrishna-pq3yj
    @Radhakrishna-pq3yj Год назад +2

    Wonderful.. 100k coming soon. 👍

  • @BjrnOttoVasbottenbjovas
    @BjrnOttoVasbottenbjovas Год назад

    Loved it, thanks

  • @fakeITDevTeam
    @fakeITDevTeam Год назад

    thank you so much for the useful videos

  • @timdew8334
    @timdew8334 Год назад +6

    Would love a follow up production version using Azure service bus.

  • @sergeys5270
    @sergeys5270 Год назад +1

    Thank you!

  • @normanaranez323
    @normanaranez323 Год назад +6

    This is a nice content, could you also create clean architecture setup with real project scecnario, like creating repository pattern, cqrs, mediatR, integrating with database using clean architecture? thanks in advance :)

  • @ntrpause
    @ntrpause Год назад

    El mejor canal de Dotnet! me suscribo

  • @rakkarajput
    @rakkarajput Год назад

    Awesome 👍😎👍 that'why I like it...

  • @juanalfredogutierrez8663
    @juanalfredogutierrez8663 4 месяца назад

    Thank you máster.

  • @nguyenhaiang6198
    @nguyenhaiang6198 Год назад +1

    Your content is always solid 🔥 Please make a video about SAGA pattern.

  • @OutsidePawn
    @OutsidePawn Год назад +1

    Thanks for this. Highly appreciated. I have a few questions:
    1. Will persistent Tcp connection btw client and broker scale better than polling? (I'm seriously having doubts as to which one would scale better as on the one hand, too many concurrent connections can exhaust port availability or even overload the broker whereas on the other hand, too many clients can quickly flood the broker with constant polling requests)
    2. Does Kafka or any other message broker allow / prefer 1 method to the other?
    2. In general, Which method is preferred / currently being used by companies that manage a lot of messages.

  • @DickBakerSql
    @DickBakerSql Год назад

    Having established that publisher should be unbothered by none/number of subscribers, seems contrary that messagebus should respond with any unhappy error code (having dropped unwanted msg iff no subscribers), although I agree that publisher can ignore such warning and plough on regardless.
    The eventual C# consumer then used the hardwired Id (created manually earlier) rather than request (and teardown on exit) its own SubscriberId, but ideal homework for viewers anyway!

  • @DIPANJAN5555
    @DIPANJAN5555 Год назад

    Very good content. One thing that i need to add while you are adding record then can you simultaneously show the db record? It ll be easier to understand.

  • @maziyar.m
    @maziyar.m Год назад +1

    handsome charismatic individual? 😃

  • @mohammadramezani1233
    @mohammadramezani1233 Год назад

    Hello les please tech us about how to use signalR in web api

  • @arnonoordover4054
    @arnonoordover4054 Год назад

    Time 1:21:00 I suppose the FirstOrDefault should be FirstOrDefaultAsync?

  • @DickBakerSql
    @DickBakerSql Год назад +1

    Unclear why model's string properties are marked [Required] but with string? i.e. nullable which is contrary. Fortunately EFCore copes well and creates NOT NULL columns.

  • @DickBakerSql
    @DickBakerSql Год назад

    Curious mix of Any() vs Count==0 but otherwise great!

  • @Navovvol
    @Navovvol Год назад

    A good video. BUT the video goes on for almost two hours, and all we see in the end is a while loop with a request to receive messages. There is no real subscription, for example, a callback. There is nothing about load regulation and message queue overflow.