Skip to content

(op bunching) Add processMessagesCore to SharedObject implementations#25745

Merged
agarwal-navin merged 3 commits intomainfrom
processMessagesCore
Oct 24, 2025
Merged

(op bunching) Add processMessagesCore to SharedObject implementations#25745
agarwal-navin merged 3 commits intomainfrom
processMessagesCore

Conversation

@agarwal-navin
Copy link
Contributor

@agarwal-navin agarwal-navin commented Oct 24, 2025

processMessagesCore was added to SharedObject in #23836.
This change adds processMessagesCore to implementations of SharedObject.

This is a precursor to #25176 where processCore will be removed from SharedObject. Some of the boiler plate added here will be cleaned up with that change.

@agarwal-navin agarwal-navin requested a review from a team as a code owner October 24, 2025 00:48
Copilot AI review requested due to automatic review settings October 24, 2025 00:48
@agarwal-navin agarwal-navin requested review from a team as code owners October 24, 2025 00:48
@github-actions github-actions bot added area: dds Issues related to distributed data structures area: dds: propertydds area: dds: sharedstring area: dds: tree area: tests Tests to add, test infrastructure improvements, etc public api change Changes to a public API base: main PRs targeted against main branch labels Oct 24, 2025
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds the processMessagesCore method to implementations of SharedObject across various DDS (Distributed Data Structure) packages. This is preparatory work for eventual removal of processCore from SharedObject, introducing a new message processing pattern that handles batched messages via IRuntimeMessageCollection.

Key changes:

  • Adds processMessagesCore implementations to all SharedObject subclasses
  • Refactors message processing to extract envelope and content separately
  • Updates test utilities to use the new processMessagesCore method

Reviewed Changes

Copilot reviewed 26 out of 26 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
packages/test/test-end-to-end-tests/src/test/summarization/summarizeIncrementallySubDds.spec.ts Adds processMessagesCore to test DDSs with message collection handling
packages/test/test-end-to-end-tests/src/test/idCompressor.spec.ts Updates test spy from processCore to processMessagesCore
packages/dds/test-dds-utils/src/test/sharedNothing.ts Adds processMessagesCore tracking and makes processCore throw error
packages/dds/test-dds-utils/src/test/ddsFuzzHarness.spec.ts Updates test assertions from processCoreCalls to processMessagesCoreCalls
packages/dds/task-manager/src/taskManager.ts Implements processMessagesCore with envelope/content separation
packages/dds/shared-summary-block/src/sharedSummaryBlock.ts Adds processMessagesCore that throws (no ops expected)
packages/dds/shared-object-base/src/test/sharedObject.spec.ts Adds processMessagesCore to test implementations
packages/dds/shared-object-base/src/test/attachingBindingAndConnecting.spec.ts Adds processMessagesCore override support to test harness
packages/dds/sequence/src/sequence.ts Implements processMessagesCore with message reconstruction for merge tree
packages/dds/register-collection/src/consensusRegisterCollection.ts Adds processMessagesCore with envelope/content message processing
packages/dds/register-collection/api-report/register-collection.legacy.beta.api.md Updates API surface with processMessagesCore
packages/dds/pact-map/src/pactMap.ts Implements processMessagesCore with envelope-based event emission
packages/dds/ordered-collection/src/consensusOrderedCollection.ts Adds processMessagesCore with envelope/content separation
packages/dds/ordered-collection/api-report/ordered-collection.legacy.beta.api.md Updates API surface with processMessagesCore
packages/dds/matrix/src/matrix.ts Implements processMessagesCore with ISequencedDocumentMessage reconstruction
packages/dds/map/src/map.ts Adds processMessagesCore with override modifier
packages/dds/map/src/directory.ts Implements processMessagesCore with handler signature updates
packages/dds/legacy-dds/src/signal/sharedSignal.ts Adds processMessagesCore for signal operation processing
packages/dds/legacy-dds/src/array/sharedArray.ts Implements processMessagesCore for array operations
packages/dds/ink/src/ink.ts Adds processMessagesCore with detailed JSDoc for message processing
packages/dds/counter/src/counter.ts Implements processMessagesCore for counter operations
packages/dds/cell/src/cell.ts Adds processMessagesCore with attribution handling
experimental/dds/tree/src/SharedTree.ts Implements processMessagesCore with contents-based processing
experimental/dds/tree/api-report/experimental-tree.alpha.api.md Updates API surface with processMessagesCore
experimental/dds/ot/ot/src/ot.ts Adds processMessagesCore for operational transformation
experimental/PropertyDDS/packages/property-dds/src/propertyTree.ts Implements processMessagesCore for property tree operations

Abe27342 added a commit that referenced this pull request Oct 24, 2025
## Description

Adjust the way that SharedString attribution tests inject timestamps
into messages to be a bit more realistic; rather than at op event
raising time, we do so "on the server" when the messages are "sent".
This necessitates updating the snapshots to reflect that catchup ops
have timestamps (as they would with a real server implementation).

Motivation: #25745 adjusts how op events are fired in a way that breaks
the mock implementation here.

---------

Co-authored-by: Abram Sanderson <absander@microsoft.com>
@github-actions
Copy link
Contributor

🔗 Found some broken links! 💔

Run a link check locally to find them. See
https://github.com/microsoft/FluidFramework/wiki/Checking-for-broken-links-in-the-documentation for more information.

linkcheck output


> fluid-framework-docs-site@0.0.0 ci:check-links /home/runner/work/FluidFramework/FluidFramework/docs
> start-server-and-test "npm run serve -- --no-open" 3000 check-links

1: starting server using command "npm run serve -- --no-open"
and when url "[ 'http://127.0.0.1:3000' ]" is responding with HTTP status code 200
running tests using command "npm run check-links"


> fluid-framework-docs-site@0.0.0 serve
> docusaurus serve --no-open

[SUCCESS] Serving "build" directory at: http://localhost:3000/

> fluid-framework-docs-site@0.0.0 check-links
> linkcheck http://localhost:3000 --skip-file skipped-urls.txt

 ELIFECYCLE  Command failed with exit code 1.

@agarwal-navin agarwal-navin merged commit 15415d3 into main Oct 24, 2025
42 checks passed
@agarwal-navin agarwal-navin deleted the processMessagesCore branch October 24, 2025 20:02
anthony-murphy-agent pushed a commit to anthony-murphy-agent/FluidFramework that referenced this pull request Jan 14, 2026
)

## Description

Adjust the way that SharedString attribution tests inject timestamps
into messages to be a bit more realistic; rather than at op event
raising time, we do so "on the server" when the messages are "sent".
This necessitates updating the snapshots to reflect that catchup ops
have timestamps (as they would with a real server implementation).

Motivation: microsoft#25745 adjusts how op events are fired in a way that breaks
the mock implementation here.

---------

Co-authored-by: Abram Sanderson <absander@microsoft.com>
anthony-murphy-agent pushed a commit to anthony-murphy-agent/FluidFramework that referenced this pull request Jan 14, 2026
…microsoft#25745)

`processMessagesCore` was added to `SharedObject` in
microsoft#23836.
This change adds `processMessagesCore` to implementations of
`SharedObject`.

This is a precursor to
microsoft#25176 where
`processCore` will be removed from `SharedObject`. Some of the boiler
plate added here will be cleaned up with that change.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: dds: propertydds area: dds: sharedstring area: dds: tree area: dds Issues related to distributed data structures area: tests Tests to add, test infrastructure improvements, etc base: main PRs targeted against main branch public api change Changes to a public API

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants