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: runtime facade, collection handles, specs, diagnostics, conflict resolvers, change streams, observability and error SPI. No runtime implementation. |
dsm-runtime | Default dsm-api implementation: DsmRuntimeBuilder, in-memory register/lease/CRDT collections, collection and spec builders, built-in CRDTs, record codec, and eviction scheduling. Most application code depends here. |
dsm-cluster-proto | Protobuf message definitions for cluster envelopes and gossip, including the service_id isolation field. |
dsm-cluster | Transport-level membership: standalone, multicast, and unicast gossip implementations, plus the relay health SPI. |
dsm-security | Message signing, replay protection, cluster admission validation, optional AEAD payload encryption, and sender rate-limiting. |
dsm-sync | Runtime control-plane and data-plane replication services with digest, snapshot, replay repair, and adaptive per-peer repair planning. |
dsm-federation | Cross-cluster federation bridge for register, lease, and CRDT tiers with anti-entropy repair. |
dsm-metrics-micrometer | Micrometer adapter for the DsmMetrics SPI, feeding Prometheus, Grafana, and OpenTelemetry pipelines. |
dsm-spring-boot-autoconfigure | Runtime-first Spring Boot autoconfiguration and the trace-context filter. |
dsm-spring-boot-starter | Starter dependency for standard Boot integration. |
dsm-examples | Runnable standalone, Spring Boot, and interactive multi-node REPL examples. |
dsm-test-support | Fakes and reusable test transports plus chaos and fault-injection helpers. |
dsm-integration-test | End-to-end integration coverage across modules. |
dsm-benchmark | JMH benchmark suite for register, lease, CRDT, digest, and serialization hot paths. |
Layered View
Recommended Reading Path
Read dsm-api first for the contracts, then dsm-runtime for the runtime API surface and collection builders.
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-federationif you span more than one cluster - read the Spring modules only if your service uses Boot
Integration Reading Path
text
first integration?
|
+--> Getting Started
+--> Standalone Quickstart or Spring Boot
+--> Runtime API / Collection Specs / Collection Handles
+--> scenario cookbooks
+--> architecture internals only when needed