Skip to content

Commit 1ebf1a4

Browse files
authored
Merge pull request #99 from Particular/john/claenup
2 parents e71128f + a1fd1c0 commit 1ebf1a4

23 files changed

+92
-180
lines changed

Package-README.md

Lines changed: 0 additions & 39 deletions
This file was deleted.

README.md

Lines changed: 65 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@
22

33
This showcase consists of 4 processes hosting MassTransit message producers and consumers that implement a simplified order processing logic from an e-commerce system.
44

5-
![System Overview](diagram.svg "width=680")
6-
5+
![System Overview](docs/diagram.svg "width=680")
76

87
## Launching the Showcase in Docker
98

@@ -13,11 +12,12 @@ To help getting started we have created a few docker compose files that orchestr
1312
Run the docker command below from the `src` folder in a terminal.
1413

1514
```cmd
16-
docker compose -f docker-compose-base.yml -f compose-rabbitmq.yml --env-file rabbit.env up -d
15+
docker compose -p particular-platform-showcase -f docker-compose-base.yml -f compose-rabbitmq.yml --env-file rabbit.env up -d
1716
```
1817

19-
### To run against **Azure Service Bus**
18+
### (Alternative) Run in Docker against **Azure Service Bus**
2019

20+
<details>
2121
The showcase can also be run using Azure Service Bus rather than RabbitMQ.
2222
First configure the access to your Azure Service Bus namespace by editing the variables in `src/asb.env`.
2323

@@ -28,25 +28,33 @@ CONNECTIONSTRING="Endpoint=sb://[NAMESPACE].servicebus.windows.net/;SharedAccess
2828
Run docker command below from the `src` folder in a terminal.
2929

3030
```cmd
31-
docker compose -f docker-compose-base.yml -f compose-azure.yml --env-file asb.env up -d
31+
docker compose -p particular-platform-showcase -f docker-compose-base.yml -f compose-azure.yml --env-file asb.env up -d
3232
```
3333

34-
## Running from an IDE
34+
</details>
35+
36+
### (Alternative) Run from an IDE
3537

38+
<details>
3639
> [!WARNING]
3740
> When using Visual Studio, ensure you have the "Enable Multi-Project Launch profiles" setting on. Allow Visual Studio 2022 "multi-launch" so you can easily select the profile you want to run.
3841
>
3942
> It can be activated by accessing the Tools menu -> Manage preview features- Enable Multi-Project Launch profiles.
4043
41-
To start the required infrastructure run the following docker command below from the `src` folder in a terminal.
44+
To start the required infrastructure for the showcase, run one of the docker command below from the `src` folder in a terminal.
4245

4346
RabbitMQ
47+
4448
```cmd
45-
docker compose -f docker-compose-base.yml -f compose-rabbitmq.yml --env-file rabbit.env --profile infrastructure --profile frontend up -d
49+
docker compose -p particular-platform-showcase -f docker-compose-base.yml -f compose-rabbitmq.yml --env-file rabbit.env --profile infrastructure --profile frontend up -d
4650
```
51+
4752
Azure Service Bus
53+
54+
See [ASB setup](#alternative-run-from-azure-service-bus) above for setting the connection string to your Azure Service Bus namespace
55+
4856
```cmd
49-
docker compose -f docker-compose-base.yml -f compose-azure.yml --env-file asb.env --profile infrastructure --profile frontend up -d
57+
docker compose -p particular-platform-showcase -f docker-compose-base.yml -f compose-azure.yml --env-file asb.env --profile infrastructure --profile frontend up -d
5058
```
5159

5260
After opening the solution (from Visual Studio or Rider), choose one of the run profiles that matches the transport configured previously:
@@ -56,6 +64,53 @@ After opening the solution (from Visual Studio or Rider), choose one of the run
5664

5765
Run the solution to start the demo.
5866

67+
</details>
68+
5969
## Opening the showcase UI
6070

61-
Navigate to http://localhost:61335/ to see the UI.
71+
Navigate to http://localhost:61335/ to see the UI. Click `Run Scenario` to start the showcase scenario and generate some simulated message handling failures.
72+
73+
## Handling failures with the Particular Platform
74+
75+
### Inspecting failures
76+
77+
Navigate to [http://localhost:9090](http://localhost:9090) in a new tab, or click the `View in ServicePulse` button, to see the details on failures ingested by the platform.
78+
79+
![Service Pulse Dashboard](docs/service-pulse-dashboard-failed-messages.png "Message processing errors summary view")
80+
81+
### Scheduling message reprocessing
82+
83+
Click on the "Failed Messages" button at the top of the page to see all failed messages ingested by the platform, grouped by the exception type and stack trace.
84+
85+
![Service Pulse Failed Messages](docs/service-pulse-dashboard-failed-messages-groups.png "Failed messages grouping")
86+
87+
Drill into an existing group to see the list of individual processing failures. Clicking on any of the rows in the list shows detailed information of a given failed message in the headers and message body tabs.
88+
89+
A failed message can be scheduled for reprocessing by clicking the `Retry message` button.
90+
91+
> [!NOTE]
92+
> It may take several seconds after retrying a message for it to appear again in the consumer's input queue
93+
94+
![Service Pulse Failed Message View](docs/service-pulse-failed-message-view.png "Failed message details view")
95+
96+
### Editing messages before reprocessing
97+
98+
Go to the details page for one of the failed messages and click the `Edit & retry` button. The pop-up window shows the headers collection and the message body in two separate tabs.
99+
100+
Navigate to the `Message Body` tab and change some of the contents of the message, ensuring it's still valid JSON matching the message type, and click "Retry" to schedule the message for reprocessing.
101+
102+
> [!WARNING]
103+
> Changing or deleting header values may change or cause issues with the subsequent re-processing. It is recommended that these values are not changed if you are unsure of their purpose.
104+
105+
![Edit Message View](docs/service-pulse-edit-before-retry.png "Edit & Retry view showing the message body")
106+
107+
### Viewing retries
108+
109+
Return to the showcase UI to see that the retries have now been successfully handled.
110+
111+
### Troubleshooting
112+
113+
Having issues?
114+
115+
- Check logs in docker. Ensure that there are no port clashes with existing containers or services on your machine.
116+
- Ask any questions on [our forum](https://discuss.particular.net/tag/masstransit)
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
82.7 KB
Loading
90.2 KB
Loading
48.3 KB
Loading

0 commit comments

Comments
 (0)