microsoft / microsoft/FluidFramework

Shift of event types in v4.0

Open
#27,446 0 comments 0 reactions 1 assignee View on GitHub

@jason-ha is already working on this.

Since May 29, 2026.

breaking change
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

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.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.