All Downloads are FREE. Search and download functionalities are using the official Maven repository.

itto.ditto-internal-utils-ddata.3.6.0.source-code.reference.conf Maven / Gradle / Ivy

The newest version!
# This is the reference config file that contains all the default settings.
# Make your edits/overrides in your application.conf.

ditto {
  ddata {
    pekko-distributed-data = ${pekko.cluster.distributed-data}
    pekko-distributed-data {
      // specific overrides come here

      # How often the Replicator should send out gossip information.
      #  Next chunk will be transferred in next round of gossip.
      #  default: 2s
      gossip-interval = 2s
      gossip-interval = ${?DITTO_DDATA_GOSSIP_INTERVAL}


      # from which data size to start logging INFO messages about the ddata size of a *single ddata key* in
      #  org.apache.pekko.cluster.ddata.PayloadSizeAggregator (using logger "org.apache.pekko.cluster.ddata.Replicator):
      #  default: 10 KiB
      log-data-size-exceeding = 100 B
      log-data-size-exceeding = ${?DITTO_DDATA_LOG_DATA_SIZE_EXCEEDING}

      # reduce max amount of ddata map keys to send per gossip-interval, postpone others to next interval
      #  default: 500
      #  as we apply sharding on the map keys for Ditto pub/sub, "1" configures to use minimal remoting size, whereas
      #  values "> 1" reduce networking interactions
      max-delta-elements = ${ditto.ddata.number-of-shards}
      max-delta-elements = ${?DITTO_DDATA_MAX_DELTA_ELEMENTS}

      # increase max size to transfer in a delta update
      #  default: 50
      #  If this is too low, full syncs of the ddata map will be triggered which may be larger than the configured
      #  `max-frame-size` of the cluster,
      #  then we will see: Failed to serialize oversized message [org.apache.pekko.cluster.ddata.Replicator$Internal$Gossip].
      #  If this is configured too high,
      #       we will see: Failed to serialize oversized message [ActorSelectionMessage(org.apache.pekko.cluster.ddata.Replicator$Internal$DeltaPropagation)]
      delta-crdt.max-delta-size = 50
      delta-crdt.max-delta-size = ${?DITTO_DDATA_DELTA_MAX_DELTA_SIZE}
    }

    read-timeout = 5s
    write-timeout = 25s

    # Write consistency for topic subscription: "all", "majority" or "local"
    subscription-write-consistency = all
    subscription-write-consistency = ${?DITTO_DDATA_SUBSCRIPTION_WRITE_CONSISTENCY}

    # Local delay for topic subscription to account for replication and notification delay.
    #  Set to 0s to disable.
    subscription-delay = 2s
    subscription-delay = ${?DITTO_DDATA_SUBSCRIPTION_DELAY}

    # The number of shards Ditto's ddata extension applies for Map keys:
    #  - when configured to "1", there will be exactly 1 map key containing all ddata values in its value
    #  - increase to higher values in order to apply sharding
    #  The sharding is done based on a hash of the Address or ActorRef of the Subscriber of a service instance.
    number-of-shards = 5
    number-of-shards = ${?DITTO_DDATA_NUMBER_OF_SHARDS}

    # The number of subscribers in each subscriber pool.
    #  Pekko deserializes (remote) messages addressed to 1 actor sequentially, which makes deserialization throughput
    #  unable to scale with the number of CPUs given to the instance.
    #  Each instance starts a fixed number of `subscriber-pool-size` subscribers.
    #  Published signals are sent to each subscriber according to the entity ID.
    #  This allows signals to different things to be deserialized in parallel.
    subscriber-pool-size = 1
    subscriber-pool-size = ${?pekko.remote.artery.advanced.inbound-lanes}
    subscriber-pool-size = ${?REMOTE_INBOUND_LANES}
    subscriber-pool-size = ${?DITTO_DDATA_SUBSCRIBER_POOL_SIZE}
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy