-
Notifications
You must be signed in to change notification settings - Fork 0
Description
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
- Proto definitions for the service and messages live under the gRPC adapter directory (or a shared
api/path) and generate usable stubs. - gRPC server implementation forwards calls to
GamifyServicefor points, badges, state retrieval, and event streaming. - A test spins up the gRPC server with an in-memory store and exercises at least one RPC.
- README (or
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.