01. Welcome
02. What will you learn in this course
03. Who is the course for and prerequisites
04. Communication between services
05. What is the Problem with HTTP APIs
06. RPC vs Messaging
07. Why asynchronous messaging
08. Things to consider when using asynchronous messaging
09. Fallacies of distributed computing
10. Types of coupling
11. Elements of a messaging system
12. Channels
13. Pipes & Filters
14. Understanding messages
15. Types of messages
16. Events
17. Commands
18. Commands vs Events
19. Producers
20. ConsumersReceivers
21. Pull & Push consumption models
22. Queues
23. Topics & Subscriptions
24. Message brokersBuses
25. Brokers vs brokerless
26. Dead-lettering & poison messages
27. Load leveling
28. Delivery modesguarantees
29. Transports
30. Event-Driven
31. Event sourcing
32. Section recap
33. Installing RabbitMQ
34. RabbitMQ concepts
35. Exchange types
36. MassTransit overview
37. Advantages of using MassTransit
38. Installing MassTransit templates
39. Demo Opening & preparing the solution
40. Bus configuration
41. Message contracts
42. Sending a message
43. Messages in detail
44. Consuming a message
45. Registering & tuning a message consumer
46. Configuring consumers & handling errors
47. Endpoints - configuring
48. Topologies
49. Changing the Exchange types
50. The middleware concept
51. Pipes & filters - 2
52. Implementing different filter types
53. Configure retries
54. Using Exception Filters & Delayed redeliveries
55. Using CircuitBreakers
56. Point to point
57. Fire & Forget
58. PublishSubscribe
59. RequestReply
60. Competing consumers
61. Introduction
62. Getting familiar with the Outbox project
63. Implementing the outbox pattern
64. What is the Saga pattern
65. What is a State machine
66. Implementing a state machine
67. Registering & Running the Saga in memory
68. Running the Saga and persisting it
69. Testing in MassTransit
70. Looking at tests
71. Course conclusion