Skip to main content

IFluidDataStoreChannel Interface

Minimal interface a data store runtime needs to provide for IFluidDataStoreContext to bind to control.

Functionality include attach, snapshot, op/signal processing, request routes, expose an entryPoint, and connection state notifications

This API is provided for existing users, but is not recommended for new users.

To use, import via @fluidframework/runtime-definitions/legacy.

For more information about our API support guarantees, see here.

Signature

export interface IFluidDataStoreChannel extends IDisposable

Extends: IDisposable

Properties

Property Alerts Modifiers Type Description
entryPoint Alpha readonly IFluidHandleInternal<FluidObject> Exposes a handle to the root object / entryPoint of the component. Use this as the primary way of interacting with the component.

Methods

Method Alerts Modifiers Return Type Description
applyStashedOp(content) Alpha Promise<unknown>
getAttachGCData(telemetryContext) Alpha IGarbageCollectionData Synchronously retrieves GC Data (representing the outbound routes present) for the initial state of the DataStore
getAttachSummary(telemetryContext) Alpha ISummaryTreeWithStats Synchronously retrieves the summary used as part of the initial summary message
getGCData(fullGC) Alpha Promise<IGarbageCollectionData> Returns the data used for garbage collection. This includes a list of GC nodes that represent this context including any of its children. Each node has a list of outbound routes to other GC nodes in the document.
makeVisibleAndAttachGraph() Alpha void Makes the data store channel visible in the container. Also, runs through its graph and attaches all bound handles that represent its dependencies in the container's graph.
process(message, local, localOpMetadata) Deprecated, Alpha void Processes the op.
processMessages(messageCollection) Alpha optional void Process messages for this channel. The messages here are contiguous messages in a batch.
processSignal(message, local) Alpha void Processes the signal.
request(request) Alpha Promise<IResponse>
reSubmit(type, content, localOpMetadata) Alpha any Ask the DDS to resubmit a message. This could be because we reconnected and this message was not acked.
rollback(type, content, localOpMetadata) Alpha optional void Revert a local message.
setAttachState(attachState) Alpha void
setConnectionState(connected, clientId) Alpha any Notifies this object about changes in the connection state.
summarize(fullTree, trackState, telemetryContext) Alpha Promise<ISummaryTreeWithStats> Generates a summary for the channel. Introduced with summarizerNode - will be required in a future release.
updateUsedRoutes(usedRoutes) Alpha void After GC has run, called to notify this channel of routes that are used in it.

Property Details

entryPoint

Exposes a handle to the root object / entryPoint of the component. Use this as the primary way of interacting with the component.

This API is provided as an alpha preview and may change without notice.

To use, import via @fluidframework/runtime-definitions/alpha.

For more information about our API support guarantees, see here.

Signature

readonly entryPoint: IFluidHandleInternal<FluidObject>;

Type: IFluidHandleInternal<FluidObject>

Method Details

applyStashedOp

This API is provided as an alpha preview and may change without notice.

To use, import via @fluidframework/runtime-definitions/alpha.

For more information about our API support guarantees, see here.

Signature

applyStashedOp(content: any): Promise<unknown>;

Parameters

Parameter Type Description
content any

Returns

Return type: Promise<unknown>

getAttachGCData

Synchronously retrieves GC Data (representing the outbound routes present) for the initial state of the DataStore

This API is provided as an alpha preview and may change without notice.

To use, import via @fluidframework/runtime-definitions/alpha.

For more information about our API support guarantees, see here.

Signature

getAttachGCData(telemetryContext?: ITelemetryContext): IGarbageCollectionData;

Parameters

Parameter Modifiers Type Description
telemetryContext optional ITelemetryContext

Returns

Return type: IGarbageCollectionData

getAttachSummary

Synchronously retrieves the summary used as part of the initial summary message

This API is provided as an alpha preview and may change without notice.

To use, import via @fluidframework/runtime-definitions/alpha.

For more information about our API support guarantees, see here.

Signature

getAttachSummary(telemetryContext?: ITelemetryContext): ISummaryTreeWithStats;

Parameters

Parameter Modifiers Type Description
telemetryContext optional ITelemetryContext

Returns

Return type: ISummaryTreeWithStats

getGCData

Returns the data used for garbage collection. This includes a list of GC nodes that represent this context including any of its children. Each node has a list of outbound routes to other GC nodes in the document.

This API is provided as an alpha preview and may change without notice.

To use, import via @fluidframework/runtime-definitions/alpha.

For more information about our API support guarantees, see here.

Signature

getGCData(fullGC?: boolean): Promise<IGarbageCollectionData>;

Parameters

Parameter Modifiers Type Description
fullGC optional boolean true to bypass optimizations and force full generation of GC data.

Returns

Return type: Promise<IGarbageCollectionData>

makeVisibleAndAttachGraph

Makes the data store channel visible in the container. Also, runs through its graph and attaches all bound handles that represent its dependencies in the container's graph.

This API is provided as an alpha preview and may change without notice.

To use, import via @fluidframework/runtime-definitions/alpha.

For more information about our API support guarantees, see here.

Signature

makeVisibleAndAttachGraph(): void;

process

Processes the op.

This API is deprecated and will be removed in a future release.

processMessages should be used instead to process messages for a channel.

This API is provided as an alpha preview and may change without notice.

To use, import via @fluidframework/runtime-definitions/alpha.

For more information about our API support guarantees, see here.

Signature

process(message: ISequencedDocumentMessage, local: boolean, localOpMetadata: unknown): void;

Parameters

Parameter Type Description
message ISequencedDocumentMessage
local boolean
localOpMetadata unknown

processMessages

Process messages for this channel. The messages here are contiguous messages in a batch.

This API is provided as an alpha preview and may change without notice.

To use, import via @fluidframework/runtime-definitions/alpha.

For more information about our API support guarantees, see here.

Signature

processMessages?(messageCollection: IRuntimeMessageCollection): void;

Parameters

Parameter Type Description
messageCollection IRuntimeMessageCollection The collection of messages to process.

processSignal

Processes the signal.

This API is provided as an alpha preview and may change without notice.

To use, import via @fluidframework/runtime-definitions/alpha.

For more information about our API support guarantees, see here.

Signature

processSignal(message: IInboundSignalMessage, local: boolean): void;

Parameters

Parameter Type Description
message IInboundSignalMessage
local boolean

request

This API is provided as an alpha preview and may change without notice.

To use, import via @fluidframework/runtime-definitions/alpha.

For more information about our API support guarantees, see here.

Signature

request(request: IRequest): Promise<IResponse>;

Parameters

Parameter Type Description
request IRequest

Returns

Return type: Promise<IResponse>

reSubmit

Ask the DDS to resubmit a message. This could be because we reconnected and this message was not acked.

This API is provided as an alpha preview and may change without notice.

To use, import via @fluidframework/runtime-definitions/alpha.

For more information about our API support guarantees, see here.

Signature

reSubmit(type: string, content: any, localOpMetadata: unknown): any;

Parameters

Parameter Type Description
type string The type of the original message.
content any The content of the original message.
localOpMetadata unknown The local metadata associated with the original message.

Returns

Return type: any

rollback

Revert a local message.

This API is provided as an alpha preview and may change without notice.

To use, import via @fluidframework/runtime-definitions/alpha.

For more information about our API support guarantees, see here.

Signature

rollback?(type: string, content: any, localOpMetadata: unknown): void;

Parameters

Parameter Type Description
type string The type of the original message.
content any The content of the original message.
localOpMetadata unknown The local metadata associated with the original message.

setAttachState

This API is provided as an alpha preview and may change without notice.

To use, import via @fluidframework/runtime-definitions/alpha.

For more information about our API support guarantees, see here.

Signature

setAttachState(attachState: AttachState.Attaching | AttachState.Attached): void;

Parameters

Parameter Type Description
attachState AttachState.Attaching | AttachState.Attached

setConnectionState

Notifies this object about changes in the connection state.

This API is provided as an alpha preview and may change without notice.

To use, import via @fluidframework/runtime-definitions/alpha.

For more information about our API support guarantees, see here.

Signature

setConnectionState(connected: boolean, clientId?: string): any;

Parameters

Parameter Modifiers Type Description
connected boolean
clientId optional string ID of the client. It's old ID when in disconnected state and it's new client ID when we are connecting or connected.

Returns

Return type: any

summarize

Generates a summary for the channel. Introduced with summarizerNode - will be required in a future release.

This API is provided as an alpha preview and may change without notice.

To use, import via @fluidframework/runtime-definitions/alpha.

For more information about our API support guarantees, see here.

Signature

summarize(fullTree?: boolean, trackState?: boolean, telemetryContext?: ITelemetryContext): Promise<ISummaryTreeWithStats>;

Parameters

Parameter Modifiers Type Description
fullTree optional boolean true to bypass optimizations and force a full summary tree.
trackState optional boolean This tells whether we should track state from this summary.
telemetryContext optional ITelemetryContext summary data passed through the layers for telemetry purposes

Returns

Return type: Promise<ISummaryTreeWithStats>

updateUsedRoutes

After GC has run, called to notify this channel of routes that are used in it.

This API is provided as an alpha preview and may change without notice.

To use, import via @fluidframework/runtime-definitions/alpha.

For more information about our API support guarantees, see here.

Signature

updateUsedRoutes(usedRoutes: string[]): void;

Parameters

Parameter Type Description
usedRoutes string[] The routes that are used in this channel.