Appendix B — Spring Boot Configuration Quick Reference
Properties begin at dsm.* and bind to
DsmProperties. Defaults support local startup and are not
production recommendations; deployment reviews network, security,
capacity, and failure domains.
Top-level identity
| Property | Purpose | Gate |
|---|---|---|
dsm.cluster-id |
cluster identity | required; blank fails startup |
dsm.service-id |
service family/communication isolation | equal across peers; not a tenant ID |
dsm.node.id |
node identity | random UUID by default; configure explicitly for stable diagnostics |
dsm.node.host / port |
advertised address | reachable from peer network |
Membership
| Property group | Key fields | Meaning |
|---|---|---|
dsm.cluster.mode |
STANDALONE / MULTICAST /
UNICAST |
selects membership implementation |
dsm.cluster.multicast.* |
group, port, heartbeat, failure threshold | constrained by multicast support |
dsm.cluster.unicast.* |
gossip port/interval, seeds/DNS, failure threshold | seed is discovery entry, not permanent leader |
High-risk Lease decisions also check quorum and stability rounds; member count alone does not establish ownership.
Runtime and sync
dsm.runtime.* governs lifecycle/threads;
dsm.sync.* governs propagation, repair, batching, and QoS.
A timeout, queue, batch, or repair-period change also updates capacity
experiments and fault drills.
Security
| Property surface | Question |
|---|---|
| token/challenge | who enters the communication domain? |
| authentication/key version | who signs, and which minimum version is accepted? |
| encryption | is ciphertext required, with which algorithm/key version? |
| nonce window/senders | what replay window and sender-memory bound apply? |
| rate limit/ban | how do repeated failures throttle and recover? |
Secrets come from deployment key management and stay out of the book, logs, metric tags, and repository configuration.
Collections
Each dsm.collections[] contains at least:
- bean-name: routeHintsCollection
tenant-id: shared
application-id: gateway
collection-id: route-hints
schema-id: route-hints/v1
type: REGISTER
consistency-tier: REGISTER
entity-type: com.example.RouteHint| Type | Additional requirement |
|---|---|
| Register | record-derived codec, or codec-bean for non-record |
| Lease | entity factory, Lease mode/TTL/quorum configuration |
| CRDT | update/state codecs, initial state, and merger bean |
The canonical bean name is
dsmCollection:<tenant>/<application>/<collection>;
bean-name is an additional business alias. Duplicate
locator, missing codec/merger/factory, or invalid ranges fail fast.
Validation entry point
cd submodule/dsm
mvn -q -pl dsm-spring-boot-autoconfigure -am \
-Dtest=DsmAutoConfigurationTest,DsmSpringBootSmokeTest \
-Dsurefire.failIfNoSpecifiedTests=false test