{"id":390140,"date":"2023-11-08T11:11:38","date_gmt":"2023-11-08T10:11:38","guid":{"rendered":"https:\/\/blog.jetbrains.com\/?post_type=dotnet&#038;p=390140"},"modified":"2023-11-08T11:11:43","modified_gmt":"2023-11-08T10:11:43","slug":"oss-power-ups-masstransit-webinar-recording","status":"publish","type":"dotnet","link":"https:\/\/blog.jetbrains.com\/en\/dotnet\/2023\/11\/08\/oss-power-ups-masstransit-webinar-recording","title":{"rendered":"OSS Power-Ups: MassTransit \u2013 Webinar Recording"},"content":{"rendered":"\n<p>The recording of our webinar, <strong>OSS Power-Ups: MassTransit<\/strong>, with <a href=\"https:\/\/twitter.com\/PhatBoyG\" target=\"_blank\" rel=\"noopener\">Chris Patterson<\/a>, is available. This was the <strong>thirteenth episode<\/strong> of our <a href=\"https:\/\/lp.jetbrains.com\/oss-powerups\/\" target=\"_blank\" rel=\"noreferrer noopener\">OSS Power-Ups<\/a> series, where we put a spotlight on open-source .NET projects. <a href=\"https:\/\/www.jetbrains.com\/community\/newsletters\/\" target=\"_blank\" rel=\"noreferrer noopener\">Subscribe to our community newsletter<\/a>&nbsp;to receive notifications about future webinars.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<p><em>Join Chris Patterson, the author of <a href=\"https:\/\/masstransit.io\/\" target=\"_blank\" rel=\"noopener\">MassTransit<\/a>, for an insightful webinar as we delve into the messaging patterns supported by MassTransit. In today&#8217;s rapidly evolving tech landscape, efficient communication between software components is more crucial than ever. MassTransit, an open-source distributed application framework for .NET, provides tools and techniques to help you navigate the complexities of distributed systems.<\/em><\/p>\n\n\n\n<p><em>In this webinar, Chris Patterson will guide you through the complexities of messaging patterns, illustrating how MassTransit can streamline communication, enhance scalability, and boost resilience in your applications. Whether you&#8217;re a seasoned developer looking to refine your messaging skills or a newcomer eager to explore the world of distributed systems, this webinar will provide valuable insights and practical knowledge that will empower you to build more robust and efficient software solutions.<\/em><\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"OSS Power-Ups: MassTransit\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/sbt9p7jqe74?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<!--more-->\n\n\n\n<p><strong>Webinar agenda:<\/strong><\/p>\n\n\n\n<ul>\n<li><a href=\"https:\/\/youtube.com\/watch?v=sbt9p7jqe74&amp;t=0s\" target=\"_blank\" rel=\"noopener\">00:00<\/a> &#8211; Intro<\/li>\n\n\n\n<li><a href=\"https:\/\/youtube.com\/watch?v=sbt9p7jqe74&amp;t=77s\" target=\"_blank\" rel=\"noopener\">01:17<\/a> &#8211; About OSS PowerUps<\/li>\n\n\n\n<li><a href=\"https:\/\/youtube.com\/watch?v=sbt9p7jqe74&amp;t=190s\" target=\"_blank\" rel=\"noopener\">03:10<\/a> &#8211; Hello, Chris!<\/li>\n\n\n\n<li><a href=\"https:\/\/youtube.com\/watch?v=sbt9p7jqe74&amp;t=385s\" target=\"_blank\" rel=\"noopener\">06:25<\/a> &#8211; About Chris and MassTransit<\/li>\n\n\n\n<li><a href=\"https:\/\/youtube.com\/watch?v=sbt9p7jqe74&amp;t=480s\" target=\"_blank\" rel=\"noopener\">08:00<\/a> &#8211; When to use MassTransit<\/li>\n\n\n\n<li><a href=\"https:\/\/youtube.com\/watch?v=sbt9p7jqe74&amp;t=702s\" target=\"_blank\" rel=\"noopener\">11:42<\/a> &#8211; MassTransit in Action: \u201cDropBox\u201d Pattern<\/li>\n\n\n\n<li><a href=\"https:\/\/youtube.com\/watch?v=sbt9p7jqe74&amp;t=920s\" target=\"_blank\" rel=\"noopener\">15:20<\/a> &#8211; Publishing a Message<\/li>\n\n\n\n<li><a href=\"https:\/\/youtube.com\/watch?v=sbt9p7jqe74&amp;t=949s\" target=\"_blank\" rel=\"noopener\">15:49<\/a> &#8211; Watching Messages in RabbitMQ<\/li>\n\n\n\n<li><a href=\"https:\/\/youtube.com\/watch?v=sbt9p7jqe74&amp;t=1026s\" target=\"_blank\" rel=\"noopener\">17:06<\/a> &#8211; Consuming Messages<\/li>\n\n\n\n<li><a href=\"https:\/\/youtube.com\/watch?v=sbt9p7jqe74&amp;t=1160s\" target=\"_blank\" rel=\"noopener\">19:20<\/a> &#8211; Configuring MassTransit<\/li>\n\n\n\n<li><a href=\"https:\/\/youtube.com\/watch?v=sbt9p7jqe74&amp;t=1285s\" target=\"_blank\" rel=\"noopener\">21:25<\/a> &#8211; Message Idempotency and Deduplication<\/li>\n\n\n\n<li><a href=\"https:\/\/youtube.com\/watch?v=sbt9p7jqe74&amp;t=1490s\" target=\"_blank\" rel=\"noopener\">24:50<\/a> &#8211; Q: Who generates IDs?<\/li>\n\n\n\n<li><a href=\"https:\/\/youtube.com\/watch?v=sbt9p7jqe74&amp;t=1625s\" target=\"_blank\" rel=\"noopener\">27:05<\/a> &#8211; Advantages of MassTransit over bare Message Queues<\/li>\n\n\n\n<li><a href=\"https:\/\/youtube.com\/watch?v=sbt9p7jqe74&amp;t=1839s\" target=\"_blank\" rel=\"noopener\">30:39<\/a> &#8211; Q: Can communicate synchronously between MassTransit and RabbitMQ?<\/li>\n\n\n\n<li><a href=\"https:\/\/youtube.com\/watch?v=sbt9p7jqe74&amp;t=1985s\" target=\"_blank\" rel=\"noopener\">33:05<\/a> &#8211; Retry Patterns and Failure Handling<\/li>\n\n\n\n<li><a href=\"https:\/\/youtube.com\/watch?v=sbt9p7jqe74&amp;t=2310s\" target=\"_blank\" rel=\"noopener\">38:30<\/a> &#8211; Logging in MassTransit<\/li>\n\n\n\n<li><a href=\"https:\/\/youtube.com\/watch?v=sbt9p7jqe74&amp;t=2362s\" target=\"_blank\" rel=\"noopener\">39:22<\/a> &#8211; Request\/Response vs. Publish<\/li>\n\n\n\n<li><a href=\"https:\/\/youtube.com\/watch?v=sbt9p7jqe74&amp;t=2494s\" target=\"_blank\" rel=\"noopener\">41:34<\/a> &#8211; Telemetry in MassTransit<\/li>\n\n\n\n<li><a href=\"https:\/\/youtube.com\/watch?v=sbt9p7jqe74&amp;t=2594s\" target=\"_blank\" rel=\"noopener\">43:14<\/a> &#8211; Configuring Retries I<\/li>\n\n\n\n<li><a href=\"https:\/\/youtube.com\/watch?v=sbt9p7jqe74&amp;t=2734s\" target=\"_blank\" rel=\"noopener\">45:34<\/a> &#8211; Q: Where are failing Messages going?<\/li>\n\n\n\n<li><a href=\"https:\/\/youtube.com\/watch?v=sbt9p7jqe74&amp;t=2829s\" target=\"_blank\" rel=\"noopener\">47:09<\/a> &#8211; Configuring Retries II<\/li>\n\n\n\n<li><a href=\"https:\/\/youtube.com\/watch?v=sbt9p7jqe74&amp;t=2940s\" target=\"_blank\" rel=\"noopener\">49:00<\/a> &#8211; Does MassTransit retry on RabbitMQ?<\/li>\n\n\n\n<li><a href=\"https:\/\/youtube.com\/watch?v=sbt9p7jqe74&amp;t=3088s\" target=\"_blank\" rel=\"noopener\">51:28<\/a> &#8211; How to unlearn the Request\/Response approach?<\/li>\n\n\n\n<li><a href=\"https:\/\/youtube.com\/watch?v=sbt9p7jqe74&amp;t=3304s\" target=\"_blank\" rel=\"noopener\">55:04<\/a> &#8211; Evolving API Contracts in Responses (Avoiding Monoliths)<\/li>\n\n\n\n<li><a href=\"https:\/\/youtube.com\/watch?v=sbt9p7jqe74&amp;t=3638s\" target=\"_blank\" rel=\"noopener\">1:00:38<\/a> &#8211; Q: How does MassTransit compare to EasyNetQ and NServiceBus?<\/li>\n\n\n\n<li><a href=\"https:\/\/youtube.com\/watch?v=sbt9p7jqe74&amp;t=3755s\" target=\"_blank\" rel=\"noopener\">1:02:35<\/a> &#8211; Q: How to version Events?<\/li>\n\n\n\n<li><a href=\"https:\/\/youtube.com\/watch?v=sbt9p7jqe74&amp;t=4035s\" target=\"_blank\" rel=\"noopener\">1:07:15<\/a> &#8211; Q: Can I control the Message Serialization to the Queue?<\/li>\n\n\n\n<li><a href=\"https:\/\/youtube.com\/watch?v=sbt9p7jqe74&amp;t=4060s\" target=\"_blank\" rel=\"noopener\">1:07:40<\/a> &#8211; Q: Are Sagas always correlated by a GUID?<\/li>\n\n\n\n<li><a href=\"https:\/\/youtube.com\/watch?v=sbt9p7jqe74&amp;t=4114s\" target=\"_blank\" rel=\"noopener\">1:08:34<\/a> &#8211; Q: Are there Tutorials on Sagas?<\/li>\n\n\n\n<li><a href=\"https:\/\/youtube.com\/watch?v=sbt9p7jqe74&amp;t=4228s\" target=\"_blank\" rel=\"noopener\">1:10:28<\/a> &#8211; Q: Is that a Choreographer instead of an Orchestrator?<\/li>\n\n\n\n<li><a href=\"https:\/\/youtube.com\/watch?v=sbt9p7jqe74&amp;t=4310s\" target=\"_blank\" rel=\"noopener\">1:11:50<\/a> &#8211; Q: Can a Content-Type be used for Versioning?<\/li>\n\n\n\n<li><a href=\"https:\/\/youtube.com\/watch?v=sbt9p7jqe74&amp;t=4376s\" target=\"_blank\" rel=\"noopener\">1:12:56<\/a> &#8211; Q: What is GreenPipes?<\/li>\n\n\n\n<li><a href=\"https:\/\/youtube.com\/watch?v=sbt9p7jqe74&amp;t=4560s\" target=\"_blank\" rel=\"noopener\">1:16:00<\/a> &#8211; Q: How are Riders different from Transports?<\/li>\n\n\n\n<li><a href=\"https:\/\/youtube.com\/watch?v=sbt9p7jqe74&amp;t=4710s\" target=\"_blank\" rel=\"noopener\">1:18:30<\/a> &#8211; Q: Where can I see good examples of MassTransit\u2019s State Machine?<\/li>\n\n\n\n<li><a href=\"https:\/\/youtube.com\/watch?v=sbt9p7jqe74&amp;t=4788s\" target=\"_blank\" rel=\"noopener\">1:19:48<\/a> &#8211; Q: Can you explain Lifts in the old State-Machine Implementation?<\/li>\n\n\n\n<li><a href=\"https:\/\/youtube.com\/watch?v=sbt9p7jqe74&amp;t=4826s\" target=\"_blank\" rel=\"noopener\">1:20:26<\/a> &#8211; Q: Is it worth using Real Broker Services for Integration Tests?<\/li>\n\n\n\n<li><a href=\"https:\/\/youtube.com\/watch?v=sbt9p7jqe74&amp;t=4998s\" target=\"_blank\" rel=\"noopener\">1:23:18<\/a> &#8211; Q: How to share Contracts between Projects?<\/li>\n\n\n\n<li><a href=\"https:\/\/youtube.com\/watch?v=sbt9p7jqe74&amp;t=5127s\" target=\"_blank\" rel=\"noopener\">1:25:27<\/a> &#8211; Q: Can you perform Request Validation?<\/li>\n\n\n\n<li><a href=\"https:\/\/youtube.com\/watch?v=sbt9p7jqe74&amp;t=5160s\" target=\"_blank\" rel=\"noopener\">1:26:00<\/a> &#8211; Q: Are Sagas conceptually compatible with Azure Service Bus Sessions?<\/li>\n\n\n\n<li><a href=\"https:\/\/youtube.com\/watch?v=sbt9p7jqe74&amp;t=5234s\" target=\"_blank\" rel=\"noopener\">1:27:14<\/a> &#8211; Outro<\/li>\n<\/ul>\n\n\n\n<p><strong>Resources:<\/strong><\/p>\n\n\n\n<ul>\n<li><a href=\"https:\/\/masstransit.io\/\" data-type=\"link\" data-id=\"https:\/\/bunit.dev\/\" target=\"_blank\" rel=\"noopener\">MassTransit Website<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/MassTransit\/MassTransit\" target=\"_blank\" rel=\"noopener\">MassTransit GitHub Repository<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/sponsors\/phatboyg\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Sponsor Chris<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/phatboyg\/Demo-PowerUps\" data-type=\"link\" data-id=\"https:\/\/github.com\/phatboyg\/Demo-PowerUps\" target=\"_blank\" rel=\"noopener\">Demo Project<\/a><\/li>\n<\/ul>\n\n\n\n<p><strong>About the presenter:<\/strong><\/p>\n\n\n    <div class=\"about-author \">\n        <div class=\"about-author__box\">\n            <div class=\"row\">\n                                                            <div class=\"about-author__box-img\">\n                            <img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/09\/Patterson-Chris-2874-copy.jpg\" alt=\"\" loading=\"lazy\">\n                        <\/div>\n                                        <div class=\"about-author__box-text\">\n                                                    <h4>Chris Patterson<\/h4>\n                                                <p>Chris Patterson is an Enterprise Software Architect, the founder of Loosely Coupled, LLC, and the author of MassTransit, an open-source distributed application framework for building message-based applications. Before starting his own company, Chris spent 24 years leading the architecture and development of multiple platforms and services in a Fortune 10 company leveraging a broad range of technologies. Chris is a multi-year Microsoft MVP award recipient and regularly produces software development-related content on <a href=\"https:\/\/www.youtube.com\/channel\/UCjC-E0zi1ZokFmshlcq691Q\" target=\"_blank\" rel=\"noopener\">YouTube<\/a>.<\/p>\n<p>Follow Chris on <a href=\"https:\/\/twitter.com\/PhatBoyG\" target=\"_blank\" rel=\"noopener\">Twitter<\/a> and <a href=\"https:\/\/www.linkedin.com\/in\/chrispatterson\/\" target=\"_blank\" rel=\"noopener\">LinkedIn<\/a>.<\/p>\n                    <\/div>\n                            <\/div>\n        <\/div>\n    <\/div>\n","protected":false},"author":553,"featured_media":395525,"comment_status":"closed","ping_status":"closed","template":"","categories":[4992,1401,30],"tags":[6619,1269,7131,558,6442,6183],"cross-post-tag":[],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/dotnet\/390140"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/dotnet"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/types\/dotnet"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/users\/553"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/comments?post=390140"}],"version-history":[{"count":10,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/dotnet\/390140\/revisions"}],"predecessor-version":[{"id":404190,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/dotnet\/390140\/revisions\/404190"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/media\/395525"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/media?parent=390140"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/categories?post=390140"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/tags?post=390140"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/cross-post-tag?post=390140"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}