microsoft / microsoft/FluidFramework
DDS implementation classes to be removed in v3.10
- 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:
ConsensusRegisterCollectionClassin@fluidframework/register-collectionConsensusOrderedCollectionin@fluidframework/ordered-collectionConsensusQueueClassin@fluidframework/ordered-collectionSharedTreein@fluid-experimental/tree(This needs a proper interface to be created, making it significantly more work that what is remaining for the others)SharedObjectandSharedObjectCorein@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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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