This repository is a supplementary material for my thesis API Gateways and Microservices and it extends the original repository GoogleCloudPlatform / microservices-demo in the following ways:
-
Adds a new service called
postgresservicethat encapsulates a Postgres database and thus provides permanent storage for the application. The database schema could be found in filesrc/postgresservice/schema.sql. -
Modifies
checkoutservice, which is responsible for creating the order, so it sends the created order into thepostgresservice, so the order data are stored in permanent storage and could be accessed later. -
Adds a new service called
resapiservicethat ensapsulates a lightweight REST API implemented using Express Node.js framework. The API exposes the orders stored inpostgresservicevia following endpoints:- Collections of resources, each endpoint supports limit and offset query parameters:
GET /ordersGET /order_itemsGET /addressesGET /shippings
- Endpoints to retrieve a single instance of a resource, identified by id:
GET /order/:idGET /order_item/:idGET /address/:idGET /shipping/:id
- Collections of resources, each endpoint supports limit and offset query parameters:
In the directory performance-tests/results, there are data from performance testing of the latencies of the API queries when run through the API Gateways Tyk, KrakenD and Kong. The test definition file created in the JMeter application can be found in performance-tests/api_test.jmx
The original README file was renamed to README.original.md.