Real world Micro services
Micro services provide the fundamental building blocks for any products, apps or services. They can be used in isolation or combined to create powerful distributed systems. The services are intended to be consumed by each other using RPC and externally through the Micro API.
Read more about the reason for Micro Services in this blog post.
Every service starts with a protobuf interface definition, which is a standard used by Google and everyone else now that gRPC is so dominant. The idea is to define the API in protobuf, code generate and implement the handlers for it. The services can be called by other services on the platform using those code generated clients or an API Gateway, which Micro provides. External calls via the API use the same format but with HTTP/JSON endpoints.
Services available thus far:
Micro Services depend on Micro
Install and run the server first
micro server
Run a service from source
micro run github.com/micro/services/helloworld
To call a service from another
import "github.com/micro/services/helloworld/proto"
Call it through the API
curl "http://localhost:8080/helloworld/Call?name=Alice"
From the command line
micro helloworld call --name=Alice
Browse to
http://localhost:8082/helloworld/Call
We welcome contributions of additional services:
Config for each service should be stored under the service key by name
E.g db postgres host address db.address