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.