microsoft / microsoft/FluidFramework

DDS implementation classes to be removed in v3.10

Open
#26,691 1 comment 0 reactions 0 assignees View on GitHub

@CraigMacomber is already working on this.

Since May 27, 2026.

  • #27395 by @CraigMacomber — open
api deprecation triage
Dominant language
TypeScript
Stars
4.9k
Forks
586
Avg merge
1d 15h
Merged PRs (30d)
146

Description

Deprecated API

The following DDS classes are to be replaced with exports that do not leak the SharedObject type:

  • ConsensusRegisterCollectionClass in @fluidframework/register-collection
  • ConsensusOrderedCollection in @fluidframework/ordered-collection
  • ConsensusQueueClass in @fluidframework/ordered-collection
  • SharedTree in @fluid-experimental/tree (This needs a proper interface to be created, making it significantly more work that what is remaining for the others)
  • SharedObject and SharedObjectCore in @fluidframework/shared-object-base (should be made internal once the others are addressed)

Context

These classes expose internal implementation details that consumers should not depend on. Consumers should use the corresponding interfaces (IConsensusRegisterCollection, IConsensusOrderedCollection) for typing and factory/singleton patterns for instance creation.

Approach

Use interfaces and factory patterns.

Dependencies

None.

Compatibility Concerns

None.

Phases

  • Phase 1: Mark as deprecated. Done in 2.91.0 (Except for SharedTree).
  • Phase 2: Remove concrete classes. Intended for release 3.10.0.

Expected Timeline

Intended for release 3.0.0.

Open Questions

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the exports in the named packages: @fluidframework/register-collection, @fluidframework/ordered-collection, @fluid-experimental/tree, and @fluidframework/shared-object-base. Review open pull request #27395 before making changes. Done means the concrete DDS classes no longer leak as public APIs, with the corresponding interfaces and factory or singleton patterns retained; SharedTree also needs a proper interface.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
api, distributed-systems
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.