Inter-process Communication (IPC)

No Change
assess
First Added:December 21, 2025 Updated: July 29, 2026

Inter-process Communication (IPC). Is how cooperating processes on one host exchange data and synchronize work.

Summary

Garden stance: We assess Inter-process Communication (IPC) for our estate.

Key points:

MechanismTypical useGarden note
Pipes / FIFOsSimple parent-child or shell pipelinesLowest ceremony; narrow contracts
Shared memoryHigh-throughput same-host data sharingNeeds strict synchronization discipline
Unix domain socketsLocal daemon APIs, container runtimesCommon when processes must stay isolated
Language channelsIn-process goroutines or actor mailboxesPrefer when all logic shares one runtime
Local gRPCPlugin or tooling control planesassess; see gRPC and RPC notes

Accept vs Avoid

SituationStance
Single host, need process isolationPipes, channels, Unix domain sockets, local gRPC
Single host, same runtimeLanguage-native channels first
Cross-network or cross-team service callsNot IPC; design explicit APIs; RPC is hold
Network protocol reused locally for convenienceOK on one machine; do not copy the pattern to remote peers

Decision Checklist

  1. Are both peers guaranteed to run on one machine (or one tightly coupled host group)?
  2. Can you use a language-native channel instead of a wire protocol?
  3. If you need sockets, is a documented local API enough without full RPC semantics?
  4. If the answer to (1) is no, stop treating the problem as IPC and design an explicit service boundary.

Failure Modes

  • Stretching local gRPC patterns to remote services without versioning or failure semantics
  • Treating any socket protocol as IPC even when peers live on different networks
  • Picking shared memory or signals when a simpler pipe or channel would suffice

Details

MechanismTypical useGarden note
Pipes / FIFOsSimple parent-child or shell pipelinesLowest ceremony; narrow contracts
Shared memoryHigh-throughput same-host data sharingNeeds strict synchronization discipline
Unix domain socketsLocal daemon APIs, container runtimesCommon when processes must stay isolated
Language channelsIn-process goroutines or actor mailboxesPrefer when all logic shares one runtime
Local gRPCPlugin or tooling control planesassess; see gRPC and RPC notes

Accept vs Avoid

SituationStance
Single host, need process isolationPipes, channels, Unix domain sockets, local gRPC
Single host, same runtimeLanguage-native channels first
Cross-network or cross-team service callsNot IPC; design explicit APIs; RPC is hold
Network protocol reused locally for convenienceOK on one machine; do not copy the pattern to remote peers

Decision Checklist

  1. Are both peers guaranteed to run on one machine (or one tightly coupled host group)?
  2. Can you use a language-native channel instead of a wire protocol?
  3. If you need sockets, is a documented local API enough without full RPC semantics?
  4. If the answer to (1) is no, stop treating the problem as IPC and design an explicit service boundary.

Failure Modes

  • Stretching local gRPC patterns to remote services without versioning or failure semantics
  • Treating any socket protocol as IPC even when peers live on different networks
  • Picking shared memory or signals when a simpler pipe or channel would suffice