This a learning project to understand how to build microservices using Golang.
- Broker Service: This service is responsible for handling the incoming requests and routing them to the appropriate service.
- Auth Service: This service is responsible for handling the authentication and authorization of the users. It uses PostgreSQL as the database.
- Logger Service: This service is responsible for handling the logging of the requests and responses in a MongoDB database.
- Mail Service: This service is responsible for managing an email server built using MailHog.
- Listener Service: This service is responsible for listening to the RabbitMQ queue and processing the messages.
- Golang: The primary programming language used to build the services.
- Docker: The services are containerized using Docker.
- Docker Compose: The services are orchestrated using Docker Compose.
- PostgreSQL: The database used for the Auth Service.
- MongoDB: The database used for the Logger Service.
- RabbitMQ: The message broker used for the Listener Service.
- MailHog: The email server used for the Mail Service.
- RPC: The communication protocol used between the services.
- gRPC: The framework used for optimizing the RPC communication.
- Protobuf: The serialization format used for the gRPC communication.
- Clone the repository:
git clone github.com/suhel-kap/go-microservices
-
Everything is containerized using Docker. So, you need to have Docker installed on your machine.
-
Use the
make
command to build the images and start the services:
make up_build
- To start the frontend, use the following command:
make start
- To stop the services, use the following command:
make down