Ego
A simple and component-based microservice kit for go. 一个简单的基于组件的 Go 微服务套件。
Install / Use
/learn @gotomicro/EgoREADME
EGO
English | 简体中文
1 Docs
The official docs for developers.
View https://ego-org.com
2 Introduction
EGO is a microservice-oriented governance framework implemented by golang, which integrates various engineering practices. Through the component-based design pattern, it is guaranteed that the business development can use various components in a unified way.
Advantages of EGO:
- Configure drive components
- Shield the startup details of the underlying components
- Observation and governance of microservice components
- Pluggable Ego-Component
- Fail Fast principle and friendly error prompts
2.1 Improve component proficiency
For us engineers to improve component proficiency, we must first read a lot of open source component documentation and code, and then insist on using it for a long time in order to form muscle memory and improve our speed of doing business. And the time and energy invested in all of this is enormous.
To reduce this input cost and allow more developers to better use excellent open source components, EGO's approach is to standardize all open source components, encapsulate them, and unify various behaviors.
- Unified component file name
- Unified component configuration parameters
- Unified component call API
- Unify component error behavior
- Unified component monitoring behavior
Once you have mastered one component, you can use other components by inference.
2.2 Improve the efficiency of troubleshooting
- Unified error code
- Component errors, slow responses, links, regular request interceptor points (both server and client will intercept)
- Convergence error field
- Inject key information into components: code line number, configuration name, target address, time-consuming, request data, response data
- Debugging stage, error highlighting, formatting friendly prompts
- In the debugging phase, the component has a built-in debug interceptor
2.3 Automatically generate duplicate code(EGO CLI)
- Generate code, configuration, data parsing, template separation
- Build project code independently of language
- Use the Go1.16 feature
embed, start the webUI, and generate code - Project: https://github.com/gotomicro/egoctl
3 Ego Component
We have Many EGO components to support your rapid development
| Component Name | Code | Example | Doc | |---------------------------|----------------------------------------------------------------------|-------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------| | HTTP Server | Code | Example | Doc | | gRPC Server | Code | Example | Doc | | Governance Service | Code | Example | Doc | | Job | Code | Example | Doc | | Corn job | Code | Example | Doc | | Distributed Scheduled Job | Code | Example | Doc | | HTTP Client | Code | Example | Doc | | gRPC Client | Code | Example | Doc | | gRPC Client using ETCD | Code | Example | Doc | | gRPC Client using k8s | Code | Example | Doc | | Sentinel | Code | Example | Doc | | MySQL | Code | Example | Doc | | Redis | Code | Example | Doc | | Redis Distributed lock | Code | Example | Doc | | Mongo | Code | Example | Doc | | Kafka | Code | Example | Doc | | ETCD | Code | Example | Doc | | K8S | Code | Example | Doc | | Oauth2 | Code | Example ||
- For more components please visit the website: https://github.com/ego-component
4 Definition
4.1 Framework Layer
EGO framework has three layers:
- The core layer provides configuration, logging, monitoring and links, and is the cornerstone of other components.
- The component layer provides various compo
Related Skills
node-connect
338.7kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
83.6kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
338.7kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
83.6kCommit, push, and open a PR
