Task: Create a GRPC-based service
Table of Contents
This page documents a task in the Client/server foundations story. It captures the goal, current status, acceptance, and any notes or results.
Goal
Investigate GRPC as the runtime substrate for the client/server architecture: build a small prototype, generate the C++ surface, wire it through CMake/vcpkg, and decide whether to adopt.
Status
| Field | Value |
|---|---|
| State | ABANDONED |
| Parent story | Client/server foundations |
| Now | Abandoned 2025-09-10 — pivoted to cobalt. |
| Waiting on | None. |
| Next | None. |
| Last touched | 2025-09-10 |
Acceptance
- A GRPC prototype builds in our toolchain.
- A round-trip call works in tooling.
- We can articulate a clear yes/no on adoption.
Why abandoned
GRPC's codegen and build complexity, combined with the size of the
GRPC dependency, did not justify its benefits for the project's
current scope. The pivot was to Boost.cobalt — coroutine-based async
over plain sockets, no IDL, and a much smaller dependency footprint.
The follow-on task Remove GRPC support cleaned up the experiment.
Notes
- This record exists to preserve provenance. Without it, a future reader might re-investigate GRPC without knowing it was already considered and rejected.
- Demonstrates the v2
ABANDONEDstate pattern.
Result
- No code merged. GRPC removed from the project.