Skip to content

Implement the gRPC adapter instead of a placeholder #3

@devblac

Description

@devblac

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 GamifyService for 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions