Skip to content
This repository has been archived by the owner on Nov 16, 2023. It is now read-only.

Latest commit

 

History

History
65 lines (51 loc) · 3.53 KB

02-01 application.md

File metadata and controls

65 lines (51 loc) · 3.53 KB
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.

Application diagram

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.

Container images and source code

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.

Environment variables

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]"
    • PROCESSENDPOINT="http://[yourfulfillordername].[namespace]:8080/v1/order"
      • Order Fulfillment API endpoint