itto.ditto-internal-utils-ddata.3.6.2.source-code.reference.conf Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of ditto-internal-utils-ddata Show documentation
Show all versions of ditto-internal-utils-ddata Show documentation
Eclipse Ditto is a framework for creating and managing digital twins in the IoT.
# 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}
}
}