Service Orchestration Made Simple
A lightweight microservices framework for modern applications
Mikros is an API built to facilitate and standardize the creation of applications that need to run for an indefinite period, typically running continuously, performing specific operations. It serves as an SDK that simplifies microservices development, providing a consistent approach to building and deploying services.
- 🚀 Easy Deployment - Deploy your microservices with a single command. Mikros handles the complexity so you can focus on building your application.
- 🔌 Service Discovery - Automatic service discovery and registration. No need to manually configure service connections.
- 🔒 Built-in Security - Secure communication between services with built-in authentication and encryption.
- 🔄 Load Balancing - Intelligent load balancing ensures optimal resource utilization and high availability.
- 📊 Monitoring & Observability - Comprehensive monitoring tools provide insights into your microservices ecosystem.
- ⚡ High Performance - Designed for speed and efficiency, Mikros minimizes overhead to maximize your application's performance.
Mikros supports the following service types:
- gRPC Services: Applications with APIs defined from a protobuf file.
- HTTP Services: HTTP server applications with APIs defined from a protobuf file.
- Native Services: General-purpose applications without a defined API, with the flexibility to execute any code.
- Go 1.18+
- Basic understanding of microservices architecture
go get github.com/mikros-dev/mikros
Create a simple gRPC service:
package main
import (
"context"
"github.com/mikros-dev/mikros/v2"
"github.com/mikros-dev/mikros/v2/components/options"
)
type server struct {
*mikros.Service
}
func (s *server) YourMethod(ctx context.Context, req *yourpb.Request) (*yourpb.Response, error) {
// Your implementation here
return &yourpb.Response{}, nil
}
func main() {
svc := mikros.NewService(&mikros.ServiceOptions{
Service: map[string]options.ServiceOptions{
"grpc": &options.GrpcServiceOptions{
ProtoServiceDescription: &yourpb.YourService_ServiceDesc,
},
},
})
svc.Start(&server{})
}
Mikros uses a service.toml
file for configuration. Example:
name = "your-service"
type = "grpc"
version = "v0.1.0"
language = "go"
product = "your-product"
[features.tracing]
enabled = true
For complete documentation, visit our official documentation site.
Available in:
We welcome contributions! Please see our Contributing Guide for details.
This project is licensed under the MIT License - see the LICENSE file for details.
- The Mikros team and all contributors
- The open-source community for their invaluable tools and libraries
Built with ❤️ by the Mikros team