A lightweight Go microservice framework based on OpenAPI 3.0 and Protobuf v3, supporting both monolith and microservice architectures.
go-doudou is a lightweight microservice framework for Go that uses OpenAPI 3.0 for REST and Protobuf v3 for gRPC. It enables developers to build scalable, cloud-native applications with built-in service governance features while supporting both monolithic and microservice architectures.
Go developers building scalable, cloud-native microservices or monolithic applications who need built-in service governance and want to avoid learning a new interface definition language (IDL).
Developers choose go-doudou for its interface-first development approach that starts from Go interfaces, eliminating the need to learn a new IDL, and its powerful built-in CLI code generator that reduces boilerplate. It stands out with comprehensive built-in service governance features like load balancing, rate limiting, and circuit breaking, combined with architecture flexibility for both monoliths and microservices.
go-doudou(doudou pronounce /dəudəu/)is OpenAPI 3.0 (for REST) spec and Protobuf v3 (for grpc) based lightweight microservice framework. It supports monolith service application as well.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Lets you start from Go interfaces instead of learning a new IDL, simplifying service definition as highlighted in the README's core philosophy.
Includes a built-in code generator that creates REST and gRPC boilerplate from interfaces, allowing developers to focus on business logic implementation.
Provides comprehensive features like client-side load balancing, rate limiting, and circuit breaking out-of-the-box, enhancing operational resilience for cloud-native apps.
Supports both monolithic and microservice architectures, offering flexibility in system design as emphasized in the README.
Heavily relies on third-party systems like Apollo and Nacos for remote configuration, which can limit flexibility if you're not using those tools.
The CLI-generated boilerplate may require additional customization efforts, and debugging generated code can be challenging for complex use cases.
As a newer framework, it has fewer community contributions and third-party integrations compared to established alternatives like Go-Kit or gRPC-Go.