Versions in this module Expand all Collapse all v0 v0.0.2 Jul 20, 2026 Changes in this version + const Master + const MasterThenReplica + const OutcomeHard + const OutcomeNetwork + const OutcomeOK + const OutcomeSoft + const Replica + const ReplicaThenMaster + const RetryEarly + const RetrySafe + const RetrySame + var ErrBreakerOpen = dispatch.ErrBreakerOpen + var ErrBudgetExhausted = dispatch.ErrBudgetExhausted + var ErrConnClosed = conn.ErrConnClosed + var ErrDuplicateType = server.ErrDuplicateType + var ErrMaxInFlight = conn.ErrMaxInFlight + var ErrMuxFrozen = server.ErrMuxFrozen + var ErrNoServers = cluster.ErrNoServers + var ErrNoShard = dispatch.ErrNoShard + var ErrQueueFull = conn.ErrQueueFull + var ErrShuttingDown = conn.ErrShuttingDown + var ErrStrictUnmarshal = server.ErrStrictUnmarshal + var ErrTimeout = dispatch.ErrTimeout + var ErrTypeHandledLocally = server.ErrTypeHandledLocally + func HandleNotify[Req any, PReq interface{ ... }](mux *Mux, fn func(ctx context.Context, req *Req)) error + func Handle[Req any, Resp any, PReq interface{ ... }, PResp interface{ ... }](mux *Mux, fn func(ctx context.Context, req *Req) *Resp) error + func MustHandleNotify[Req any, PReq interface{ ... }](mux *Mux, fn func(ctx context.Context, req *Req)) + func MustHandle[Req any, Resp any, PReq interface{ ... }, PResp interface{ ... }](mux *Mux, fn func(ctx context.Context, req *Req) *Resp) + type BatchCall struct + Err error + Opts []CallOption + Req Request + Resp Response + type CallOption func(*callOptions) + func WithAttemptTimeout(d time.Duration) CallOption + func WithClassifierRaw(fn func(cmd uint32, payload []byte) Outcome) CallOption + func WithClassifier[Resp any, PResp interface{ ... }](fn func(resp *Resp) Outcome) CallOption + func WithEarlyTimeout(d time.Duration) CallOption + func WithFrom(f RolePref) CallOption + func WithMaxTries(n int) CallOption + func WithRetryFlags(f RetryFlags) CallOption + func WithShard(n int) CallOption + func WithSoftRetryRaw(fn func(cmd uint32, payload []byte) bool) CallOption + func WithSoftRetry[Resp any, PResp interface{ ... }](fn func(resp *Resp) bool) CallOption + func WithStrictUnmarshal(strict bool) CallOption + func WithTimeout(d time.Duration) CallOption + func WithUseReplica() CallOption + type Client struct + func NewClient(ctx context.Context, cfg ConfigSource, opts ...ClientOption) (*Client, error) + func (c *Client) Call(ctx context.Context, req Request, resp Response, opts ...CallOption) error + func (c *Client) CallBatch(ctx context.Context, batch []BatchCall, opts ...CallOption) error + func (c *Client) Close(ctx context.Context) error + func (c *Client) Handle(h Handler) error + func (c *Client) Notify(ctx context.Context, req Request, opts ...CallOption) error + type ClientOption func(*clientOptions) + func WithDialer(d Dialer) ClientOption + func WithLogger(l *slog.Logger) ClientOption + func WithMetrics(r metrics.Registry) ClientOption + func WithPool(p wire.Pool) ClientOption + type Cmder = server.Cmder + type ConfigSource = config.Source + type Dialer = cluster.Dialer + type Error = dispatch.Error + type Handler = server.Handler + type Incoming = server.Incoming + type Mux = server.Mux + func NewMux() *Mux + type Outcome = breaker.Outcome + type Peer = server.Peer + func PeerFrom(ctx context.Context) (Peer, bool) + type ReplicaUser interface + UseReplica func() bool + type Request = server.Request + type Response = server.Response + type RetryFlags = dispatch.RetryFlags + type RolePref = cluster.RolePref + type Server = server.Server + func NewServer(ctx context.Context, cfg ConfigSource, h Handler, opts ...ClientOption) (*Server, error) + type Sharder interface + Shard func(totalShards int) int v0.0.1 Jul 20, 2026