A food delivery application system allows users to browse items and order food online in an easy and efficient manner
This microservices is created to demonstrate how to split sample Spring application into microservices. To achieve that goal I use Spring Cloud Gateway, Spring Cloud Circuit Breaker, Resilience4j, Retry Module, Rate Limiter, Feign Client and the Eureka Service Discovery Client/Server from the Spring Cloud Netflix technology stack.
- Add user
- Update user
- Remove user
- view user
- view all users
- etc
- Add restaurant
- Update restaurant
- Remove Restaurant
- View restaurant by id
- View all reataurant
- View restaurant by location
- View restaurant by item
- Add item to restaurant menu
- etc
- Add item
- Update item
- View item by id
- View all items
- View items by restaurant
- Remove item
- etc
- Add Order
- Update Order
- Delete Order
- View Order
- View order of a customer
- etc
- Add Cart : Note : cart automatically gets created when new user signup.
- Update cart
- Remove Cart : Note : Cart automatically gets removed when user removes his account
- View Cart
- View Cart of a user
- Add Items to cart
- Increase or decrease quantity of an item in the cart
- Clear cart
- Remove item from cart
- etc
- Add Category
- Remove Category
- Update Category
- View Category
- View category by name
- View all category
- Add bill
- Remove bill
- Update bill
- View bill
- View bill by date
- View bill of a user
- Calculate bill
- Add address : Note : Address taken by user or reataurant and it automatocally gets created when new user or restaurant gets created
- Update address
- Remove address : Automatocally gets removed when when mapped user or reataurant gets removed.
- View address
Api Gateway : This service is used to catch all the request for all the services and transfer it to that specific service in which it's URI is mapped to.
Service Registry : This service provides registration of all the users to monitor the services is up or down and to gove them their unique names.
- Implementing security to the services
- Payment service implementation
- Messaging Queue and Saga to handle Distributed Transactions
- Docker
Every microservice is a Spring Boot application and can be started locally using IDE (Lombok plugin has to be set up) or ../mvnw spring-boot:run command. Please note that supporting services (Discovery Server and API Gateway) must be started before any other application.