Implement the gRPC adapter instead of a placeholder
Context
I tried to wire up a gRPC client and found adapters/grpc/server.go is effectively empty. The README hints that gRPC is available, but there’s nothing usable to connect to.
Problem
The gRPC adapter doesn’t exist beyond a stub, so gRPC clients can’t interact with GamifyService. There are no proto definitions, server implementation, or tests.
Expected behavior
A minimal gRPC server exposes the same operations as the HTTP API (points, badges, state, and streaming events) and delegates to GamifyService, with protos and a basic test to prove it runs.
Scope / non-goals
Don’t redesign the API or add features beyond parity with existing HTTP endpoints. Keep it minimal and compilable; no perf work or load tests required.
Acceptance criteria
Hints
Stub file is at adapters/grpc/server.go. Mirror shapes from the HTTP handlers. Use the in-memory adapter for tests.
Implement the gRPC adapter instead of a placeholder
Context
I tried to wire up a gRPC client and found
adapters/grpc/server.gois effectively empty. The README hints that gRPC is available, but there’s nothing usable to connect to.Problem
The gRPC adapter doesn’t exist beyond a stub, so gRPC clients can’t interact with
GamifyService. There are no proto definitions, server implementation, or tests.Expected behavior
A minimal gRPC server exposes the same operations as the HTTP API (points, badges, state, and streaming events) and delegates to
GamifyService, with protos and a basic test to prove it runs.Scope / non-goals
Don’t redesign the API or add features beyond parity with existing HTTP endpoints. Keep it minimal and compilable; no perf work or load tests required.
Acceptance criteria
api/path) and generate usable stubs.GamifyServicefor points, badges, state retrieval, and event streaming.docs/) notes gRPC availability and shows a minimal client call.Hints
Stub file is at
adapters/grpc/server.go. Mirror shapes from the HTTP handlers. Use the in-memory adapter for tests.