Skip to content

Go-microservice is a scalable way to build microservices in golang

Notifications You must be signed in to change notification settings

MayukhSobo/go-microservices

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Go Microservice 🚀

Go Microservice is a collection of microservices built using Golang and follows a hexagonal microservice architecture with Go kit. It provides a scalable and modular foundation for building distributed systems.

🌟 Features

  • 💠 Hexagonal microservice architecture using Go kit.
  • 💬 Communication between microservices using Protocol Buffers.
  • 🔌 Separation of business logic from connection, logging, and tracing.
  • 🚀 Independent deployment and scaling of microservices on Kubernetes.
  • 📈 Integration with popular monitoring and tracing tools like Jaeger, Prometheus, LogDNA, Graphana, ELK, etc.

🚀 Getting Started

These instructions will help you set up the project and get it running on your local machine for development and testing purposes. Please refer to the individual microservice directories for microservice-specific instructions.

✅ Prerequisites

  • Golang (version X.X.X)
  • Docker (version X.X.X)
  • Kubernetes (version X.X.X)
  • Protocol Buffers (protoc) (version X.X.X)

💻 Installation

  1. Clone the repository:

    git clone https://github.com/your-username/your-repository.git
  2. Install the project dependencies:

    go mod download
  3. Build the project:

    go build ./...

📁 Project Structure

The project follows a modular structure with separate directories for each microservice. The overall directory structure is as follows:

  • cmd: Entry point for each microservice.
  • internal: Contains the internal packages for each microservice, including the domain, use case, and repository.
  • pkg: Contains the reusable packages, such as API handlers and Protocol Buffers.
  • scripts: Contains the scripts for building, running, and testing the project.

🛠️ Usage

Please refer to the individual microservice directories for microservice-specific usage instructions.

🧪 Testing

The project includes comprehensive test coverage for each microservice. To run the tests, use the following command:

go test ./...

🚀 Deployment

Each microservice can be deployed independently on a Kubernetes cluster. Refer to the individual microservice directories for microservice-specific deployment instructions.

📈 Monitoring and Logging

The project integrates with popular monitoring and logging tools, including Jaeger, Prometheus, LogDNA, Graphana, and ELK. Refer to the individual microservice directories for microservice-specific monitoring and logging instructions.

👥 Contributing

Contributions are welcome! Please follow the guidelines in the CONTRIBUTING.md file.

📄 License

This project is licensed under the MIT License.

🙋 Author

Mayukh Sarkar


About

Go-microservice is a scalable way to build microservices in golang

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published