SCM is a Go microservices boilerplate that provides a foundation for building scalable and modular applications using GraphQL, MongoDB, and gRPC. It includes the necessary components and libraries to get started quickly.
Make sure you have the following prerequisites installed:
- Go Kit: A toolkit for building microservices in Go.
- GrantZheng/kit: A library that complements Go Kit and provides additional utilities.
- GraphQL: An implementation of GraphQL in Go.
- MongoDB: The official MongoDB driver for Go.
- Clone the repository:
git clone https://github.com/scm.git
- Install the project dependencies using Glide:
glide install
- Run the project:
go run .
- Call the DB service using curl:
curl -XPOST -d'{"Username":"admin"}' localhost:8080/get_by_username
To learn more about the components used in this project, you can refer to the following resources:
- Go Kit: Official documentation for Go Kit.
- GrantZheng/kit: Documentation for GrantZheng's kit library.
- GraphQL in Go: Official documentation for GraphQL in Go.
- MongoDB Go Driver: Official documentation for the MongoDB Go driver.
The SCM boilerplate provides a solid foundation for building microservices-based applications with a focus on scalability, modularity, and ease of development. It integrates popular technologies such as GraphQL, MongoDB, and gRPC, allowing developers to quickly build robust and efficient applications.
The project is actively maintained and open to contributions. Some potential areas of improvement and future enhancements include:
- Adding more examples and usage scenarios
- Enhancing security measures
- Integrating additional databases or message brokers
- Providing more extensive documentation and tutorials
- DevOps integration
Feel free to contribute to the project by submitting pull requests or opening issues for bug reports or feature requests.
- Threading a context
- Distributed tracing