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.
1. 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.
2. 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 |
3. Acceptance
- A GRPC prototype builds in our toolchain.
- A round-trip call works in tooling.
- We can articulate a clear yes/no on adoption.
4. 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.
5. 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.
6. Result
- No code merged. GRPC removed from the project.