sectionclass | title | parent-id |
---|---|---|
h2 |
Application Overview |
intro |
You will be deploying a customer-facing order placement and fulfilment application that is containerised and is architected for a microservice implementation.
The application consists of 5 components, namely:
- A public facing Order Capture swagger enabled API
- A messaging queue to provide reliable message delivery
- An event listener that picks up events from the messaging queue and brokers requests to a 'legacy application'
- An internal Order Fulfill legacy API.
- A MongoDB database
Hint: The Order Capture API exposes the following endpoint for health-checks:
http://[PublicEndpoint]:[port]/healthz
In the table below, you will find the Docker container images provided by the development team on Docker Hub as well as their corresponding source code on GitHub.
Component | Docker Image | Source Code |
---|---|---|
Order Capture API | azch/captureorder | source-code |
Order Fulfillment API | azch/fulfillorder | source-code |
Event Listener (RabbitMQ) | azch/rabbitmqlistener | source-code |
Event Listener (Event Hub) | azch/eventhublistener | source-code |
Hint: You will not be using all container images at the same time.
Each container image requires certain environment variables to properly run and track your progress.
Make sure you set those environment variables.
- All Containers
TEAMNAME="[YourTeamName]"
- Track your team's progress. Use your assigned team name
CHALLENGEAPPINSIGHTS_KEY="[AsSpecifiedAtTheEvent]"
- Application Insights key provided by proctors
APPINSIGHTS_KEY="[YourOwnKey]"
- Your own Application Insights key, if you want to track application metrics
- Order Capture API
MONGOURL="mongodb://[mongoinstance].[namespace]"
- MongoDB connection endpoint. Don't forget to set the username/password
AMQPURL="amqp://[url]:5672"
- RabbitMQ connection endpoint
- Order Fulfillment API
MONGOURL="mongodb://[mongoinstance].[namespace]"
- MongoDB connection endpoint. Don't forget to set the username/password
- Event Listener (RabbitMQ)
AMQPURL="amqp://[url]:5672"
- RabbitMQ connection endpoint
PROCESSENDPOINT="http://[yourfulfillordername].[namespace]:8080/v1/order"
- Order Fulfillment API endpoint
- Event Listener (Event Hub)
EVENTHUBCONNSTRING="Endpoint=sb://[youreventhub].servicebus.windows.net/;SharedAccessKeyName=[keyname];SharedAccessKey=[key]"
- Azure Event Hub connection endpoint. Make sure your policy key is URL Encoded. Use a tool like: https://www.url-encode-decode.com/
PROCESSENDPOINT="http://[yourfulfillordername].[namespace]:8080/v1/order"
- Order Fulfillment API endpoint