Skip to main content
Version: 0.0.0 (Beta)

Design Decisions

Why a short-lived agent?

  • EchoPost exists only to cover downtime.
  • Keeping it alive after replay provides no value.
  • A short-lived process reduces memory usage and operational complexity.

Why local buffering instead of a remote fallback?

  • Removes network dependency during failure.
  • Lower latency.
  • Smaller failure surface area.
  • Disk is already available on the host.

Why PebbleDB?

  • Golang-native.
  • Low overhead.
  • Fast reads during replay.
  • Survives crashes without additional recovery logic.

Why gRPC over REST?

  • Lower overhead.
  • Persistent connections.
  • Better suited for high-frequency writes.

Why UNIX sockets?

  • SDK and EchoPost run on the same machine.
  • No port management.
  • Faster than TCP loopback.

This limits Windows support, which is acceptable for current targets.