You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

29 lines
961 B

  1. // Package abciclient provides an ABCI implementation in Go.
  2. //
  3. // There are 3 clients available:
  4. // 1. socket (unix or TCP)
  5. // 2. local (in memory)
  6. // 3. gRPC
  7. //
  8. // ## Socket client
  9. //
  10. // async: the client maintains an internal buffer of a fixed size. when the
  11. // buffer becomes full, all Async calls will return an error immediately.
  12. //
  13. // sync: the client blocks on 1) enqueuing the Sync request 2) enqueuing the
  14. // Flush requests 3) waiting for the Flush response
  15. //
  16. // ## Local client
  17. //
  18. // async: global mutex is locked during each call (meaning it's not really async!)
  19. // sync: global mutex is locked during each call
  20. //
  21. // ## gRPC client
  22. //
  23. // async: gRPC is synchronous, but an internal buffer of a fixed size is used
  24. // to store responses and later call callbacks (separate goroutine per
  25. // response).
  26. //
  27. // sync: waits for all Async calls to complete (essentially what Flush does in
  28. // the socket client) and calls Sync method.
  29. package abciclient