<p>There come a time when you need to experiment new things, new style, new approach.
So this post serves as it is named.</p>
<h1><aid="user-content-design-api-by-trimming-down-the-interfacestruct-or-whatever"class="anchor"aria-hidden="true"href="#design-api-by-trimming-down-the-interfacestruct-or-whatever"><spanaria-hidden="true"class="octicon octicon-link"></span></a>Design API by trimming down the interface/struct or whatever</h1>
So split big client to many children, each child handle single aspect, like user or transaction.</p>
<p>My concert is we replace an interface with a struct which contains multiple interfaces aka children.
I don't know if this is the right call.</p>
<p>This pattern is used by <ahref="https://github.com/google/go-github">google/go-github</a>.</p>
<h2><aid="user-content-find-alternative-to-grpcgrpc-go"class="anchor"aria-hidden="true"href="#find-alternative-to-grpcgrpc-go"><spanaria-hidden="true"class="octicon octicon-link"></span></a>Find alternative to <ahref="https://github.com/grpc/grpc-go">grpc/grpc-go</a>
Also read <ahref="https://go.dev/blog/protobuf-apiv2"rel="nofollow">A new Go API for Protocol Buffers</a> to know why <code>v1.20.0</code> is <code>v2</code>.</p>
<p>Currently there are some:</p>
<ul>
<li>
<ahref="https://github.com/bufbuild/connect-go">bufbuild/connect-go</a>. Comming from buf, trust worthy but need time to make it match feature parity with grpc-go.</li>