In this course, we will talk about the architecture of our project.
In this course, we will create a project like product-ordering-application.
When we say product-ordering-application, we can think of it like that we will have a product-list page such as book-list, food-list or dress-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 three different microservices.
Our microservices will be api-gateway, product-service and transaction-service.
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 product-service, we will manage product CRUD operations. This service will be a product-management-service.
In transaction-service, we will manage transaction CRUD operations. This service will store the logs coming from the product purchases. For example, the UserX bought the ProductX on DateX etc.
Our microservices dependency process will be like that. First of all, the client can access the 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 PostgreSQL and H2Database. We can use other databases also but at the end of it we will deploy our codes to Heroku. These databases can be used on Heroku freely so we chose these databases.
We will provide connection between microservices with Retrofit library. Retrofit will handle all our networking issues.
For our all services, we will create cloud deployment with Heroku. Heroku is an amazing free framework. We can deploy our spring-boot projects with some configuration over github easily. So At the end of the course, we will have an application on production and we will have a code on github that is accessible by everyone.
In addition to these libraries, In our project, we will use lots of technologies like Spring Boot, Spring Security, Hibernate, PostgreSQL, Gradle, Lombok, Heroku etc.
Of course here, our main library will be Spring-boot. It will provide a simpler and faster way to set up, configure and database to provide data.
At the end of each microservices, we will test our applications with Postman. Postman is another amazing tool to debug networking.
That's all about the microservices architecture of our project.