sig
val init :
?cluster:Import.Cluster.t ->
?fail_if_async_has_been_initialized:bool -> unit -> unit
val shutdown : unit -> unit Core.Std.Or_error.t Async.Std.Deferred.t
val run :
?buffer_age_limit:[ `At_most of Core.Std.Time.Span.t | `Unlimited ] ->
?where:[ `F of unit -> string | `Local | `On of string ] ->
(unit -> 'a Async.Std.Deferred.t) ->
('a, string) Core.Std.Result.t Async.Std.Deferred.t
val spawn :
?buffer_age_limit:[ `At_most of Core.Std.Time.Span.t | `Unlimited ] ->
?where:[ `F of unit -> string | `Local | `On of string ] ->
(('a, 'b) Hub.t -> 'c Async.Std.Deferred.t) ->
(('a, 'b) Channel.t * ('c, string) Core.Std.Result.t Async.Std.Deferred.t)
Async.Std.Deferred.t
val hub : unit -> ('a, 'b) Hub.t Async.Std.Deferred.t
val is_worker_machine : unit -> bool
val round_robin : [> `F of unit -> string ]
val random : [> `F of unit -> string ]
val random_in : string list -> [> `F of unit -> string ]
end