Skip to content

Shift of event types in v3.0 #27446

@jason-ha

Description

@jason-ha

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

v3.0

Metadata

Metadata

Assignees

Labels

breaking changeThis PR or issue would introduce a breaking change

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions