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 ABANDONED state pattern.

Result

  • No code merged. GRPC removed from the project.

Emacs 29.1 (Org mode 9.6.6)