In this course, we will create a project like an online-course-application.
When I say online-course-application, we can think of it like that we will have a product-list page such as book-list, food-list or course-list. Somehow users or customers will see these product-lists and they can buy one of the products. Of course, at the end of it, this transaction will be logged.
Actually, in our application, we will try to implement these processes with different microservices.
To implement this application, we will use five different microservices.
Our microservices will be api-gateway, course-service, purchase-service, eureka-discovery-service and frontend-with-react.
In api-gateway, we will manage APIs. This microservice will be a gateway for the whole application. To access the other services, we will use this microservice. In this microservice, we will handle user-management also. We will authorize users and if the users are authorized, other services can be available.
In course-service, we will manage course CRUD operations. This service will be a course-management-service.
In purchase-service, we will manage purchase CRUD operations. This service will store the logs coming from the course purchases. For example, the UserX bought the CourseX on DateX etc.
Our other microservice will be eureka discovery service. To provide it we will use spring-cloud-netflix-eureka library.
This microservice allows services to find and communicate with each other without hard coding hostname and port.
With eureka service, other services can register eureka servers and all of them can reach each-other with application name.
These four microservices will be used for server side.
On the client side, we will use React to consume all data which come from these microservices. And we will provide a user-friendly UI with react.
Our microservices dependency process will be like that.
Clients can access the system from the UI. On react-UI,users can take different actions like creating courses, purchasing courses etc. All requests coming from react-UI will go to api-gateway. So all traffic will pass over api-gateway.
To access the api-gateway, the client should pass the login process. Then other services will be accessible over the api-gateway.
Spring-security will be one of the main topics in our application. Also, we will use JWT to provide security.
Here, the important point is, we will also use secure connections among microservices. To provide it, we will use secure-key-tokens.
As a database, we will use MySQL, PostgreSQL and H2Database. We will use different databases to show the functionalities of microservices.
We will provide connections between microservices with the OpenFeign library. OpenFeign will handle connection problems in the gateway.
Also, on the backend to provide the connection among all microservices, we will use eureka discovery server. Eureka-discovery-server will be aware of all microservices and it helps to create connections between microservices easily.
In addition to these libraries, In our project, we will use lots of technologies like Spring Boot, Spring Security, Hibernate, MySQL, PostgreSQL, Maven, Lombok, JWT etc.
Of course here, our main library will be Spring-boot. It will provide a simpler and faster way to set up, configure, and run rest API applications.
At the end of each microservices, we will test our applications with Postman. Postman is another amazing tool to debug networking.
Who this course is for:
- All curious developers about Microservices and React
- Basic java knowledge and a computer
Last Updated 12/2021