Module Map
DSM is organized as a multi-module toolkit so teams can pull in only the layers they need.
This page explains module boundaries. If you are integrating DSM into a service, start with the guides and Reference section first.
| Module | Purpose |
|---|---|
dsm-api | Public contracts, shared models, collection specs, diagnostics, lease and CRDT primitives, security and observability SPIs |
dsm-runtime | Runtime builder, default in-memory implementations, collection builders, record codecs, interceptors, lifecycle listeners, and standalone helpers |
dsm-sync | Runtime control-plane and data-plane replication services, capability negotiation, repair planning, and anti-entropy sweeps |
dsm-cluster-proto | Protobuf schema module for cluster membership messages |
dsm-cluster | Standalone, multicast, and unicast gossip membership implementations plus relay health SPI |
dsm-security | Message signing, replay protection, cluster admission validation, sender rate limiting, and optional payload encryption |
dsm-federation | Cross-cluster federation bridge and relay SPI for register, lease, and CRDT collections |
dsm-metrics-micrometer | Micrometer adapter for the DsmMetrics SPI |
dsm-benchmark | JMH and harness coverage for runtime, sync, codec, digest, and security overhead measurements |
dsm-spring-boot-autoconfigure | Runtime-first Spring Boot autoconfiguration |
dsm-spring-boot-starter | Starter dependency for standard Boot integration |
dsm-examples | Runnable reference examples |
dsm-test-support | Fakes and reusable test transports |
dsm-integration-test | End-to-end integration coverage |
Layered View
Recommended Reading Path
Read dsm-runtime first if you are integrating DSM directly in Java. That is where the runtime builder, collection builders, default implementations, and standalone helpers live.
Read dsm-api directly only when you are writing a library or extension that should compile against contracts without pulling in default runtime machinery.
From there:
- read
dsm-syncif you need to understand replication internals - read
dsm-clusterto choose membership behavior - read
dsm-securitybefore planning production rollout - read
dsm-federationbefore connecting independent clusters - read the Spring modules only if your service uses Boot
Integration Reading Path
- Start with Getting Started.
- Choose Standalone Quickstart or Spring Boot.
- Keep Runtime API, Collection Specs, and Collection Handles open while implementing.
- Use the scenario cookbooks for routing, ownership, and counters.
- Read architecture internals only when the integration behavior needs deeper explanation.