Services
To visualize request flows, see the Service Diagram.
Service | Language | Description |
---|---|---|
accountingservice | Go | Processes incoming orders and count the sum of all orders (mock/). |
adservice | Java | Provides text ads based on given context words. |
cartservice | .NET | Stores the items in the user’s shopping cart in Redis and retrieves it. |
checkoutservice | Go | Retrieves user cart, prepares order and orchestrates the payment, shipping and the email notification. |
currencyservice | C++ | Converts one money amount to another currency. Uses real values fetched from European Central Bank. It’s the highest QPS service. |
emailservice | Ruby | Sends users an order confirmation email (mock/). |
frauddetectionservice | Kotlin | Analyzes incoming orders and detects fraud attempts (mock/). |
frontend | JavaScript | Exposes an HTTP server to serve the website. Does not require sign up / login and generates session IDs for all users automatically. |
loadgenerator | Python/Locust | Continuously sends requests imitating realistic user shopping flows to the frontend. |
paymentservice | JavaScript | Charges the given credit card info (mock/) with the given amount and returns a transaction ID. |
productcatalogservice | Go | Provides the list of products from a JSON file and ability to search products and get individual products. |
quoteservice | PHP | Calculates the shipping costs, based on the number of items to be shipped. |
recommendationservice | Python | Recommends other products based on what’s given in the cart. |
shippingservice | Rust | Gives shipping cost estimates based on the shopping cart. Ships items to the given address (mock/). |