- // Package abcicli provides an ABCI implementation in Go.
- //
- // There are 3 clients available:
- // 1. socket (unix or TCP)
- // 2. local (in memory)
- // 3. gRPC
- //
- // ## Socket client
- //
- // async: the client maintains an internal buffer of a fixed size. when the
- // buffer becomes full, all Async calls will return an error immediately.
- //
- // sync: the client blocks on 1) enqueuing the Sync request 2) enqueuing the
- // Flush requests 3) waiting for the Flush response
- //
- // ## Local client
- //
- // async: global mutex is locked during each call (meaning it's not really async!)
- // sync: global mutex is locked during each call
- //
- // ## gRPC client
- //
- // async: gRPC is synchronous, but an internal buffer of a fixed size is used
- // to store responses and later call callbacks (separate goroutine per
- // response).
- //
- // sync: waits for all Async calls to complete (essentially what Flush does in
- // the socket client) and calls Sync method.
- package abcicli
|