microsoft / microsoft/FluidFramework
Shift of event types in v4.0
@jason-ha is already working on this.
Since May 29, 2026.
- Dominant language
- TypeScript
- Stars
- 4.9k
- Forks
- 586
- Avg merge
- 1d 15h
- Merged PRs (30d)
- 146
Description
Broken API or pattern
All Event types extending IEvent explicitly or implicitly will be rewritten using the Listenable pattern. (Instead of function overrides with different event parameter literals, Listenable pattern uses record pattern where event names are keys.)
The impacted types use the naming convention I*Event whereas those using Listenable pattern do not have I prefix.
Known interfaces: IAgentSchedulerEvents, IAudienceEvents, ICheckoutEvents, IClientEvents, IConsensusOrderedCollectionEvents, IConsensusRegisterCollectionEvents, IContainerEvents, IContainerRuntimeBaseEvents, IContainerRuntimeEvents, IDeltaManagerEvents, IDeltaQueueEvents, IDirectoryEvents, IDocumentDeltaConnectionEvents, IDocumentServiceEvents, IDragDropEvents, IErrorEvent, IEvent, IFluidContainerEvents, IFluidDataStoreContextEvents, IFluidDataStoreRuntimeEvents, IFluidHandleEvents, ILocalFluidHandleEvents, IMigratorEvents, IOdspContainerServicesEvents, IOldestClientObservableEvents, IOldestClientObserverEvents, IQuorumClientsEvents, IQuorumProposalsEvents, ISequenceIntervalCollectionEvents, IServiceAudienceEvents, ISharedArrayEvents, ISharedCellEvents, ISharedCounterEvents, ISharedDirectoryEvents, ISharedMapEvents, ISharedMatrixEvents, ISharedObjectEvents, ISharedSegmentSequenceEvents, ISharedSignalEvents, ISharedTreeEvents, ISummarizerEvents, ISummaryCollectionOpEvents, ITaskManagerEvents, ITaskSubscriptionEvents
Preparation References
Use of EventEmitterWithErrorHandling, ExtendEventProvider, IEventProvider, IEventTransformer, TypedEventEmitter, and TypedEventTransform are likely to break if used with any custom types.
Migration recommendations to be provided.
Packages
@fluid-example/migration-tools, @fluid-experimental/oldest-client-observer, @fluid-experimental/tree, @fluidframework/agent-scheduler, @fluidframework/container-definitions, @fluidframework/container-runtime, @fluidframework/container-runtime-definitions, @fluidframework/core-interfaces, @fluidframework/counter, @fluidframework/datastore-definitions, @fluidframework/driver-definitions, @fluidframework/fluid-static, @fluidframework/legacy-dds, @fluidframework/map, @fluidframework/matrix, @fluidframework/odsp-client, @fluidframework/ordered-collection, @fluidframework/register-collection, @fluidframework/runtime-definitions, @fluidframework/sequence, @fluidframework/shared-object-base, @fluidframework/task-manager, fluid-framework
Expected Timeline
v4.0
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.
Assessment
This issue has not been assessed yet.