Skip to content

Commit

Permalink
Add diagram and things to try to README (#45)
Browse files Browse the repository at this point in the history
* Add diagrams and things to try

* I like having the single image better
  • Loading branch information
DavidBoike authored Nov 5, 2024
1 parent b53085b commit 076f160
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 2 deletions.
27 changes: 25 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@

The AWS LoanBroker example is a basic loan broker implementation following the [structure presented](https://www.enterpriseintegrationpatterns.com/patterns/messaging/ComposedMessagingExample.html) by [Gregor Hohpe](https://www.enterpriseintegrationpatterns.com/gregor.html) in his [Enterprise Integration Pattern](https://www.enterpriseintegrationpatterns.com/) book.

![AWS Architectural Diagram](img/architecture-view.png)

## What's in the box

The example is composed by:

- A client application, sending loan requests.
Expand Down Expand Up @@ -37,8 +41,10 @@ To run the complete example in Docker, execute the following command from the ro
docker compose up --build -d
```

The above command will build all projects, build container images, deploy them to the local Docker registry, and start them.
The Docker Compose command will also run and configure all the additional infrastructural containers.
> [!TIP]
> Once the project is running, check out the [Things to try](#things-to-try) section.
The above command will build all projects, build container images, deploy them to the local Docker registry, and start them. The Docker Compose command will also run and configure all the additional infrastructural containers.

To stop the running solution and remove all deployed containers. Using a command prompt, execute the following command:

Expand Down Expand Up @@ -68,6 +74,23 @@ If you prefer to start the endpoints from your IDE to debug the code, execute th
docker compose --profile infrastructure up -d
```

## Things to try

Once the project is running, here are some things to try. (Links are to `localhost` and will only work when the project is running.)

1. Explore some [traces in the Jaeger UI](http://localhost:16686/search?service=LoanBroker).
* The green circles are traces where the entire flow completed successfully.
* The red circles are traces that contain an exception at some point. (Bank3 fails 1/3 of the time.) Click into the failed steps and find the exception message and stack trace in the logs.
2. Check out a selection of [business metrics in Grafana](http://localhost:3000/d/edmhjobnxatc0c/loan-broker-demo?orgId=1&refresh=5s&from=now-15m&to=now&timezone=browser). (User `admin` and password `admin`.)
* Some metrics are available for individual message types, even though the messages are processed from the same message queue.
* Many more metrics are available by navigating to [Dashboards](http://localhost:3000/dashboards) and selecting a different dashboard.
3. Explore the [ServicePulse endpoint monitoring dashboard](http://localhost:3000/dashboards), then navigate to [LoanBroker](http://localhost:9999/#/monitoring/endpoint/LoanBroker?historyPeriod=1) to see how these metrics are available for individual message types as well.
4. Investigate the EmailSender failures (the code is rigged to fail 5% of the time) in the [ServicePulse Failed Messages view](http://localhost:9999/#/failed-messages/failed-message-groups).
* Navigate into the failed message group, then to an individual message.
* Click on the tabs to see how the stack trace, message headers, and message body help a developer to troubleshoot and fix [systemic errors](https://particular.net/blog/but-all-my-errors-are-severe).
* Return to the [failed message groups view](http://localhost:9999/#/failed-messages/failed-message-groups) and request a retry for the entire batch of failed messages.
* The message handler will still fail 5% of the time. Click into the message group and see if there are any messages showing Retry Failures.

## Monitoring

The example comes with the [Particular platform](https://docs.particular.net/platform/), automatically available as Docker containers.
Expand Down
Binary file added img/architecture-view.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 076f160

Please sign in to comment.