addsvc
addsvc is an example microservice which takes full advantage of most of Go
kit's features, including both service- and transport-level middlewares,
speaking multiple transports simultaneously, distributed tracing, and rich
error definitions. The server binary is available in cmd/addsvc. The client
binary is available in cmd/addcli.
Finally, the addtransport package provides both server and clients for each
supported transport. The client structs bake-in certain middlewares, in order to
demonstrate the client library pattern. But beware: client libraries are
generally a bad idea, because they easily lead to the
distributed monolith antipattern.
If you don't know you need to use one in your organization, it's probably best
avoided: prefer moving that logic to consumers, and relying on
contract testing
to detect incompatibilities.