Package

io.reactors

protocol

Permalink

package protocol

Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. protocol
  2. BackpressureProtocols
  3. CommunicationAbstractions
  4. ReliableProtocols
  5. TwoWayProtocols
  6. RouterProtocols
  7. ServerProtocols
  8. Convenience
  9. Conversions
  10. Patterns
  11. ChannelProtocols
  12. StandardAbstractions
  13. AnyRef
  14. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. implicit class BackpressureChannelBuilderOps[R, T] extends AnyRef

    Permalink
    Definition Classes
    BackpressureProtocols
  2. implicit class BackpressureConnectorOps[R, T] extends AnyRef

    Permalink
    Definition Classes
    BackpressureProtocols
  3. trait BackpressureProtocols extends AnyRef

    Permalink

    Backpressure protocols ensure that fast producers do not overwhelm consumers.

    Backpressure protocols ensure that fast producers do not overwhelm consumers.

    In an asynchronous system, there is always a possibility that a producer reactor sends more events than the consumer can handle. This can eventually blow up the memory requirements of the consumer, since its event queue grows indefinitely. Backpressure links ensure that the

    Backpressure is parametric in the choice of the underlying communication medium. A backpressure link is established on top of a two-way link, but that two-way links may be non-reliable or reliable. This is abstracted away in a configuration object called a Medium, which is necessary to start the backpressure protocol.

  4. implicit class BackpressureReactorCompanionOps extends AnyRef

    Permalink
    Definition Classes
    BackpressureProtocols
  5. implicit class BackpressureServerOps[R] extends AnyRef

    Permalink
    Definition Classes
    BackpressureProtocols
  6. implicit class BackpressureSystemOps extends AnyRef

    Permalink
    Definition Classes
    BackpressureProtocols
  7. trait ChannelProtocols extends AnyRef

    Permalink

    Utilities that manipulate and transform channels.

  8. trait CommunicationAbstractions extends AnyRef

    Permalink
  9. trait Connection[T] extends AnyRef

    Permalink
    Definition Classes
    CommunicationAbstractions
  10. trait Convenience extends AnyRef

    Permalink

    Contains various convenience operations.

  11. trait Conversions extends AnyRef

    Permalink

    Utilities that convert values of different types to events streams.

  12. implicit class DurationEventOps[T] extends AnyRef

    Permalink
    Definition Classes
    Patterns
  13. implicit class FutureOps[T] extends AnyRef

    Permalink
    Definition Classes
    Conversions
  14. class MultiValve[T] extends AnyRef

    Permalink
  15. trait Patterns extends AnyRef

    Permalink

    General communication patterns.

    General communication patterns.

    Allows specifying communication patterns in a generic way.

    As an example, one can declaratively retry server requests until a timeout, by sending a throttled sequence of requests until a timeout, and taking the first reply that comes:

    Seq(1, 2, 4).toEvents.throttle(x => x.seconds).map(_ => server ? "req")
      .first.until(timeout(3.seconds))
  16. case class Pump[T](buffer: EventBuffer[T], subscription: Subscription) extends Product with Serializable

    Permalink
    Definition Classes
    CommunicationAbstractions
  17. case class Reliable[T](channel: Channel[T], subscription: Subscription) extends Product with Serializable

    Permalink

    Represents a connected reliable channel.

    Represents a connected reliable channel.

    When using a reliable channel to send events, clients have some level of guarantee that their events will not be impaired in some way. The exact guarantees are detailed in the Policy object which must be specified when establishing a reliable link.

    To close this reliable link, clients must use the associated subscription.

    T

    type of the events sent by this reliable channel

    channel

    channel underlying the reliable link

    subscription

    subscription associated with the reliable link

    Definition Classes
    ReliableProtocols
  18. implicit class ReliableChannelBuilderOps extends AnyRef

    Permalink
    Definition Classes
    ReliableProtocols
  19. implicit class ReliableConnectorOps[T] extends AnyRef

    Permalink
    Definition Classes
    ReliableProtocols
  20. trait ReliableProtocols extends AnyRef

    Permalink

    Reliable communication protocols ensure reliable delivery.

    Reliable communication protocols ensure reliable delivery.

    Reliable delivery is normally ensured when delivering events between reactors in the same reactor system. However, when the underlying transport is an unreliable network, events may be delayed, lost, duplicated or arbitrarily corrupted, depending on the properties of the communication medium.

    Reliability protocols ensure that all original events are delivered exactly once and in order, using either one-way or two-way reliable links.

  21. implicit class ReliableReactorCompanionOps extends AnyRef

    Permalink
    Definition Classes
    ReliableProtocols
  22. implicit class ReliableServerOps[T] extends AnyRef

    Permalink
    Definition Classes
    ReliableProtocols
  23. implicit class ReliableSystemOps extends AnyRef

    Permalink
    Definition Classes
    ReliableProtocols
  24. implicit class ReliableTwoWayChannelBuilderOps extends AnyRef

    Permalink
    Definition Classes
    ReliableProtocols
  25. implicit class ReliableTwoWayConnectorOps[I, O] extends AnyRef

    Permalink
    Definition Classes
    ReliableProtocols
  26. implicit class ReliableTwoWayReactorCompanionOps extends AnyRef

    Permalink
    Definition Classes
    ReliableProtocols
  27. implicit class ReliableTwoWayServerOps[I, O] extends AnyRef

    Permalink
    Definition Classes
    ReliableProtocols
  28. implicit class ReliableTwoWaySystemOps[I, O] extends AnyRef

    Permalink
    Definition Classes
    ReliableProtocols
  29. case class Router[T](channel: Channel[T], subscription: Subscription) extends Product with Serializable

    Permalink
  30. implicit class RouterChannelBuilderOps extends AnyRef

    Permalink
    Definition Classes
    RouterProtocols
  31. implicit class RouterConnectorOps[T] extends AnyRef

    Permalink
    Definition Classes
    RouterProtocols
  32. trait RouterProtocols extends AnyRef

    Permalink

    Communication patterns for routing.

  33. implicit class RouterReactorCompanionOps extends AnyRef

    Permalink
    Definition Classes
    RouterProtocols
  34. implicit class RouterSystemOps extends AnyRef

    Permalink
    Definition Classes
    RouterProtocols
  35. type Server[T, S] = Channel[Req[T, S]]

    Permalink

    A server channel accepts tuples with the request event and channel to reply on.

    A server channel accepts tuples with the request event and channel to reply on.

    Definition Classes
    ServerProtocols
  36. implicit class ServerChannelBuilderOps extends AnyRef

    Permalink
    Definition Classes
    ServerProtocols
  37. implicit class ServerConnectorOps[T, S] extends AnyRef

    Permalink
    Definition Classes
    ServerProtocols
  38. implicit class ServerOps[T, S] extends AnyRef

    Permalink
    Definition Classes
    ServerProtocols
  39. trait ServerProtocols extends AnyRef

    Permalink

    Communication patterns based on request-reply.

  40. implicit class ServerReactorCompanionOps extends AnyRef

    Permalink
    Definition Classes
    ServerProtocols
  41. trait ServerSide[R, C] extends AnyRef

    Permalink
    Definition Classes
    CommunicationAbstractions
  42. implicit class ServerStreamOps[T, S] extends AnyRef

    Permalink
    Definition Classes
    ServerProtocols
  43. implicit class ServerSystemOps extends AnyRef

    Permalink
    Definition Classes
    ServerProtocols
  44. sealed trait Stamp[T] extends AnyRef

    Permalink

    Represents a stamped object.

    Represents a stamped object.

    T

    type of the stamped object

    Definition Classes
    StandardAbstractions
  45. trait StandardAbstractions extends AnyRef

    Permalink
  46. implicit class TraversableOps[T] extends AnyRef

    Permalink

    Methods that convert collections to event streams.

    Methods that convert collections to event streams.

    Since standard collections are not specialized, boxing is potentially possible.

    Definition Classes
    Conversions
  47. case class TwoWay[I, O](output: Channel[O], input: Events[I], subscription: Subscription) extends protocol.Connection[I] with Product with Serializable

    Permalink

    Represents the state of an established 2-way channel.

    Represents the state of an established 2-way channel.

    To close the 2-way channel, use the associated Subscription object.

    I

    type of the incoming events

    O

    type of the outgoing events

    output

    the output channel, for outgoing events

    input

    the input event stream, for incoming events

    subscription

    subscription associated with this 2-way link

    Definition Classes
    TwoWayProtocols
  48. implicit class TwoWayChannelBuilderOps extends AnyRef

    Permalink
    Definition Classes
    TwoWayProtocols
  49. implicit class TwoWayConnectorOps[I, O] extends AnyRef

    Permalink
    Definition Classes
    TwoWayProtocols
  50. trait TwoWayProtocols extends AnyRef

    Permalink
  51. implicit class TwoWayReactorCompanionOps extends AnyRef

    Permalink
    Definition Classes
    TwoWayProtocols
  52. implicit class TwoWayServerOps[I, O] extends AnyRef

    Permalink
    Definition Classes
    TwoWayProtocols
  53. implicit class TwoWaySystemOps extends AnyRef

    Permalink
    Definition Classes
    TwoWayProtocols
  54. case class Valve[T](channel: Channel[T], available: Signal[Boolean], subscription: Subscription) extends Product with Serializable

    Permalink
    Definition Classes
    CommunicationAbstractions

Value Members

  1. object Backoff

    Permalink

    Utility methods for frequently used delay sequences.

    Utility methods for frequently used delay sequences.

    Definition Classes
    Patterns
  2. object Backpressure

    Permalink
    Definition Classes
    BackpressureProtocols
  3. object ChannelProtocols

    Permalink
  4. object Convenience

    Permalink
  5. object Conversions

    Permalink
  6. object Patterns

    Permalink
  7. object Reliable extends Serializable

    Permalink
    Definition Classes
    ReliableProtocols
  8. object Router extends Serializable

    Permalink

    Contains types and factory functions for router protocols.

  9. object Server

    Permalink

    Contains various options for tuning the server protocol.

    Contains various options for tuning the server protocol.

    Definition Classes
    ServerProtocols
  10. object Stamp

    Permalink
    Definition Classes
    StandardAbstractions
  11. object TwoWay extends Serializable

    Permalink
    Definition Classes
    TwoWayProtocols
  12. implicit def channelOps[T](ch: Channel[T])(implicit arg0: Arrayable[T]): ChannelOps[T]

    Permalink
    Definition Classes
    ChannelProtocols
  13. package instrument

    Permalink
  14. implicit def reactorSystemOps(system: ReactorSystem): ReactorSystemOps

    Permalink

    Adds convenience methods for reactor systems.

    Adds convenience methods for reactor systems.

    Definition Classes
    Convenience
  15. def retry[T](backoffScheme: Seq[Duration])(req: ⇒ Events[T]): Events[T]

    Permalink

    Retry the specified request with a backoff scheme.

    Retry the specified request with a backoff scheme.

    After a stream from one of the requests starts emitting events, all the other requests are unsubscribed from, and not further retrying takes place.

    To create different backoff schemes, see the Backoff object.

    backoffScheme

    the duration of subsequent delays between requests

    req

    the code that creates the request and a stream of replies

    returns

    the stream of replies that was first to emit an event

    Definition Classes
    Patterns
  16. def retry[T](numTimes: Int, delay: Duration)(req: ⇒ Events[T]): Events[T]

    Permalink

    Retry the specified request a fixed number of times.

    Retry the specified request a fixed number of times.

    numTimes

    the number of times to retry the request

    delay

    the delay between each request

    req

    the code that creates the request and a stream of replies

    returns

    the stream of replies that was first to emit an event

    Definition Classes
    Patterns

Inherited from BackpressureProtocols

Inherited from CommunicationAbstractions

Inherited from ReliableProtocols

Inherited from TwoWayProtocols

Inherited from RouterProtocols

Inherited from ServerProtocols

Inherited from Convenience

Inherited from Conversions

Inherited from Patterns

Inherited from ChannelProtocols

Inherited from StandardAbstractions

Inherited from AnyRef

Inherited from Any

Ungrouped