Components

📄️ API Definition

Kratos implements REST and gRPC as the transport protocols. We mainly follow the API Design Guide from Google. You could define REST API and gRPC API in proto files and generate Go codes from these files.

📄️ Config

Kratos configuration source can be specified multiple, and config will be merged into map[string]interface{}, and then get the value content through Scan or Value.

📄️ Encoding

We’ve abstracted the Codec interface to unify the serialization/deserialization logic for processing requests, and you can implement your own Codec to support more formats. The specific source code is in encoding。

📄️ Errors

You can define errors in protos and generate enums with protoc-gen-go.

📄️ Logger

Kratos contains only the simplest Log interface for business-adapted log access. When your business logic needs to use custom logs inside the kratos framework, you only need to implement the Log method simply.

📄️ Metadata

Microservices interact with each other via HTTP and gRPC API, so the service architecture should use unified Metadata transmission.

📄️ Metrics

Interface

📄️ Registry

Interface

📄️ Routing and Load Balancing

The main interface for routing and load balancing is Selector, but a default Selector implementation is also provided in the same directory. This implementation can implement node weight calculation, route filtering, and load balancing algorithms by replacing NodeBuilder, Filter, Balancer, and Pluggable

🗃️ Middleware

9 items

🗃️ Transport

3 items