Spring Properties Reference
This page documents the dsm.* Spring Boot configuration surface.
Root Properties
dsm.cluster-id
Required. Logical DSM cluster identifier.
dsm.service-id
Required. Logical service-family identifier inside the DSM cluster.
dsm.runtime.dynamic-registration
Optional. Default: false.
Controls whether the built runtime allows dynamic collection registration after construction.
Node Properties
dsm.node.id
Optional. Default: random UUID.
dsm.node.host
Optional. Default: resolved local host address.
dsm.node.port
Optional. Default: 9090.
Cluster Properties
dsm.cluster.mode
Optional. Default: STANDALONE.
Allowed values:
STANDALONEMULTICASTUNICAST
Multicast Properties
dsm.cluster.multicast.group
Default: 239.0.77.1
dsm.cluster.multicast.port
Default: 4446
dsm.cluster.multicast.heartbeat-interval
Default: 1s
dsm.cluster.multicast.failure-threshold
Default: 5
Unicast Properties
dsm.cluster.unicast.gossip-port
Default: 4447
dsm.cluster.unicast.gossip-interval
Default: 1s
dsm.cluster.unicast.gossip-fanout
Default: 3
dsm.cluster.unicast.failure-threshold
Default: 5
dsm.cluster.unicast.seed-nodes
Default: empty list
Format depends on the configured membership implementation. In practice this is typically a host and port list used for peer discovery.
dsm.cluster.unicast.dns.hostname
Optional.
dsm.cluster.unicast.dns.port
Default: 9090
Security Properties
dsm.security.enabled
Optional. Default: false.
dsm.security.cluster-secret
Required when security is enabled.
dsm.security.nonce.window-size
Default: 1024
dsm.security.nonce.max-clock-drift
Default: 5s
Collection Definitions
Collections are configured as a list under dsm.collections.
Each item supports these common fields.
Common Fields
bean-name: optional explicit bean aliastenant-id: requiredapplication-id: requiredcollection-id: requiredschema-id: requiredtype: optional, defaultREGISTERconsistency-tier: optional in the model, but must match the collection type in practicecodec-bean: requiredqos-profile: optionalreplication-profile: optionalpersistence-profile: optional
Allowed type Values
REGISTERLEASECRDT
Consistency Tier Rules
The validator enforces these combinations:
REGISTERtype requiresconsistency-tier: REGISTERLEASEtype requiresconsistency-tier: LEASECRDTtype requiresconsistency-tier: CRDT
Lease Fields
Nested under dsm.collections[].lease.
mode: defaultAUTONOMOUSterm: default10srenew-skew: default3sexpiry-grace: default500msentity-factory-bean: required for lease collections
Validation rules:
- only
AUTONOMOUSis supported on the current Spring path term,renew-skew, andexpiry-gracemust be positiverenew-skewmust be smaller thanterm
CRDT Fields
Nested under dsm.collections[].crdt.
state-codec-bean: required for CRDT collectionsinitial-state-bean: required for CRDT collectionsmerger-bean: required for CRDT collections
Built-In Profile Names
QoS Profiles
best-effort-metacontrol-criticalstandard
If omitted, defaults are selected by collection type:
- register ->
best-effort-meta - lease ->
control-critical - CRDT ->
standard
Replication Profiles
embedded-registerembedded-leaseembedded-crdt
If omitted, defaults are selected by collection type.
Persistence Profiles
ephemerallocal-durable
If omitted, defaults are:
- register ->
ephemeral - lease ->
local-durable - CRDT ->
local-durable
Bean Naming Rules
Each configured collection handle always gets a stable bean name in this form:
dsmCollection:<tenant>/<application>/<collection>If bean-name is set, that value is registered as an alias in addition to the stable name.
Startup Failure Conditions
Spring startup will fail fast when:
- a required text property is missing
- a referenced supporting bean does not exist
- two collections use the same locator
- two collections reuse the same explicit
bean-name - the collection type and consistency tier do not match
Example
dsm:
cluster-id: runtime-example
service-id: gateway-service
cluster:
mode: STANDALONE
collections:
- bean-name: routeHintsCollection
tenant-id: shared
application-id: gateway
collection-id: route-hints
schema-id: route-hints/v1
type: REGISTER
consistency-tier: REGISTER
codec-bean: routeHintCodec