@startuml

class ClientOptions {
  responseQueueCapacity: uint64_t
  nodeName: NodeName_t
  connectOnCreate: bool
  responseQueueFullPolicy: QueueFullPolicy
  serverTooSlowPolicy: ConsumerTooSlowPolicy
}

class ServerOptions {
  requestQueueCapacity: uint64_t
  nodeName: NodeName_t
  offerOnCreate: bool
  requestQueueFullPolicy: QueueFullPolicy
  clientTooSlowPolicy: ConsumerTooSlowPolicy
}

enum QueueFullPolicy {
  BLOCK_PRODUCER,
  DISCARD_OLDEST_DATA
}

enum ConsumerTooSlowPolicy {
  WAIT_FOR_CONSUMER,
  DISCARD_OLDEST_DATA
}

@enduml
