Simple Order System that utilize the power of Kafka for asynchronous communication between services
- Docker engine or similar (Lima, nerdctl, etc..) should be installed in your system
- You can click the double play button to run the MySQL and Kafka containers using docker/docker-compose.yaml

- The containers should be colored green as in this image if they are started successfully

- Go to Kakfa UI: http://localhost:8090/ui/clusters/local/all-topics and clicked
[+ Add a Topic]button
- Set
orderas the topic name and populate the other details
- Then create
shippingtopic using the same process as above.
- You can access the db using MySQL Workbench or any db explorer
- username: root, password: admin, port: 3307: schema: silverspin
./gradlew buildto build the app./gradlew bootRunto run the app locally
./gradlew bootBuildImage --imageName=order-systemto build the imagedocker run -p 8081:8080 -t order-systemto start the appdocker stop <container-id>to stop
- Nothing here yet as I'm still learning it.
- To see the php web app, on command line run PHP's web server
php -S localhost:8080
- [POST] http://localhost:8081/silverspin/api/accounts - create account
- [POST] http://localhost:8081/silverspin/api/orders - create order
- [GET] http://localhost:8081/silverspin/api/orders/{orderId}/{accountId} - get order by orderId and accountId
- [GET] http://localhost:8081/silverspin/api/orders?accountId={accountId}}&page={page}&size={size}&sortBy={sortBy}&sortDir=DESC
- get all orders accountId
- [POST] http://localhost:8082/silverspin/api/shipping - update shipping record
- Pls check Integration Testing.postman_collection.json if you want to test using Postman
- It contains integration testing for all the end points posted above.
- [order-service] http://localhost:8081/silverspin/api/swagger-ui/index.html
- [shipping-service] http://localhost:8082/silverspin/api/swagger-ui/index.html
- At the moment Unit testing is not included
- API Security
- Use Debezium. I tried, but it is not working at the moment.