To see a demo of WCF and/or GRPC, run XYZService first and then corresponding client project. Demo of Mass Transit messaging requires RabbitMQ to be installed and running (e.g. in container).
Preconfigured Docker image maintained by the MassTransit team. The container image includes the delayed exchange plug-in and the management interface is enabled.
docker run --name rabbitmq -d -p 15672:15672 -p 5672:5672 masstransit/rabbitmq
- REST
- OData
- OData
- RESTful web API design
- Swagger & REST API Demo
- Microsoft REST API Guidelines
- ASP.NET Core Web API
- Competing Consumers
- Start 2+ Subscribers and 1 Publisher
- Temporal Decoupling
- Start 1 Publisher, send some messages then start 1 Subsriber
- Asynchronous message-based communication
- Messaging Patterns
- RabbitMQ
- RabbitMQ Introduction
- AMQP Model
- RabbitMQ Tutorials
- RabbitMQ Reliability
- Service Bus
- MassTransit
- MassTransit Docs
- Mass Transit Samples:
All demos require RabbitMQ to be installed and running (e.g. in container).
- Asynchronous Communication
- Start MassTransit.WebApi (use TestController endpoints)
- Start MassTransit.Worker
- Competing Consumers / Load Balancing -
- Start MassTransit.WebApi (use TestController endpoints)
- Start two or more instances of MassTransit.Worker
- Temporal Decoupling
- Start MassTransit.WebApi (use TestController endpoints)
- Invoke API few times to send messages to the queue
- Start MassTransit.Worker to consume messages from the queue
MassTransit.WebApi and MassTransit.Worker projects are configured to use some observability features like:
- Metrics via Prometheus and Grafana (in MassTransit.WebApi only)
- Metrics are available at "http://localhost:5089/metrics" for MassTransit.WebApi and "http://localhost:15692/metrics" for RabbitMQ instance.
- Following Grafana Dashboards are used:
- Metrics are available at "http://localhost:5089/metrics" for MassTransit.WebApi and "http://localhost:15692/metrics" for RabbitMQ instance.
- Distributed Traces via Jeager
- Traces are sent to OLTP endpoint at port 4317 in Jeager instance from MassTransit.WebApi and MassTransit.Worker.
- More information on Observability configuration in Mass Trasnit is available here.
- IHttpClientFactory and Polly policies
- Polly and HttpClientFactory
- Resiliency in gRPC
- Example: Grpc.Client, Program.cs
- Client-side Load Balancing
- Connection Resiliency in Entity Framework Core
- Polly
- Simmy
- Simmy, the monkey for making chaos
- Rate limiting in ASP.NET Core
- Load test types
- Tools and Apps: