[WIP] Streaming Data Plugin - #943
Draft
KetanReddy wants to merge 1 commit into
Draft
Conversation
Contributor
Benchmark ResultsComparison against baseline from
|
| Benchmark | Current | Baseline | Change |
|---|---|---|---|
core/player/src/binding/__tests__/parser.bench.ts > parser benchmarks > Resolving binding: foo.bar |
834.63K ops/s | 685.50K ops/s | +21.8% ✅ |
core/player/src/binding/__tests__/parser.bench.ts > parser benchmarks > Resolving binding: foo.pets.1.name |
549.00K ops/s | 531.74K ops/s | +3.2% |
core/player/src/binding/__tests__/parser.bench.ts > parser benchmarks > Resolving binding: foo.pets.01.name |
529.57K ops/s | 513.60K ops/s | +3.1% |
core/player/src/binding/__tests__/parser.bench.ts > parser benchmarks > Resolving binding: foo.pets['01'].name |
458.50K ops/s | 505.58K ops/s | -9.3% |
core/player/src/binding/__tests__/parser.bench.ts > parser benchmarks > Resolving binding: foo.pets[01].name |
509.36K ops/s | 557.98K ops/s | -8.7% |
core/player/src/binding/__tests__/parser.bench.ts > parser benchmarks > Resolving binding: foo.pets[name = "frodo"].type |
311.60K ops/s | 299.55K ops/s | +4.0% |
core/player/src/binding/__tests__/parser.bench.ts > parser benchmarks > Resolving binding: foo.pets["name" = "sprinkles"].type |
222.28K ops/s | 224.17K ops/s | -0.8% |
core/player/src/binding/__tests__/parser.bench.ts > parser benchmarks > Resolving binding: foo.pets["isDog" = false].type |
303.36K ops/s | 296.97K ops/s | +2.1% |
core/player/src/binding/__tests__/parser.bench.ts > parser benchmarks > Resolving binding: foo.pets["isDog" = true].type |
313.62K ops/s | 297.39K ops/s | +5.5% ✅ |
core/player/src/binding/__tests__/parser.bench.ts > binding creation benchmarks > Resolving binding: foo.bar |
581.42K ops/s | 618.33K ops/s | -6.0% |
core/player/src/binding/__tests__/parser.bench.ts > binding creation benchmarks > Resolving binding: foo.pets.1.name |
390.72K ops/s | 406.40K ops/s | -3.9% |
core/player/src/binding/__tests__/parser.bench.ts > binding creation benchmarks > Resolving binding: foo.pets.01.name |
375.33K ops/s | 391.53K ops/s | -4.1% |
core/player/src/binding/__tests__/parser.bench.ts > binding creation benchmarks > Resolving binding: foo.pets['01'].name |
348.13K ops/s | 361.80K ops/s | -3.8% |
core/player/src/binding/__tests__/parser.bench.ts > binding creation benchmarks > Resolving binding: foo.pets[01].name |
363.41K ops/s | 397.68K ops/s | -8.6% |
core/player/src/binding/__tests__/parser.bench.ts > binding creation benchmarks > Resolving binding: foo.pets[name = "frodo"].type |
237.96K ops/s | 244.99K ops/s | -2.9% |
core/player/src/binding/__tests__/parser.bench.ts > binding creation benchmarks > Resolving binding: foo.pets["name" = "sprinkles"].type |
196.19K ops/s | 199.48K ops/s | -1.6% |
core/player/src/binding/__tests__/parser.bench.ts > binding creation benchmarks > Resolving binding: foo.pets["isDog" = false].type |
231.77K ops/s | 247.03K ops/s | -6.2% |
core/player/src/binding/__tests__/parser.bench.ts > binding creation benchmarks > Resolving binding: foo.pets["isDog" = true].type |
245.57K ops/s | 252.99K ops/s | -2.9% |
core/player/src/expressions/__tests__/performance.bench.ts > Expression Parsing/Execution Benchmark > Parsing: {{foo}} = 1 + 3 (sync) |
466.92K ops/s | 465.87K ops/s | +0.2% |
core/player/src/expressions/__tests__/performance.bench.ts > Expression Parsing/Execution Benchmark > Parsing: {{foo}} = 1 + 3 (async) |
375.52K ops/s | 373.39K ops/s | +0.6% |
core/player/src/expressions/__tests__/performance.bench.ts > Expression Parsing/Execution Benchmark > Parsing: conditional(true, true, false) (sync) |
499.54K ops/s | 495.94K ops/s | +0.7% |
core/player/src/expressions/__tests__/performance.bench.ts > Expression Parsing/Execution Benchmark > Parsing: conditional(true, true, false) (async) |
433.98K ops/s | 430.64K ops/s | +0.8% |
core/player/src/expressions/__tests__/performance.bench.ts > Expression Parsing/Execution Benchmark > Parsing: {{foo}} = conditional({{bar}} > 0, true, false) (sync) |
209.92K ops/s | 213.03K ops/s | -1.5% |
core/player/src/expressions/__tests__/performance.bench.ts > Expression Parsing/Execution Benchmark > Parsing: {{foo}} = conditional({{bar}} > 0, true, false) (async) |
193.43K ops/s | 191.42K ops/s | +1.1% |
core/player/src/expressions/__tests__/performance.bench.ts > Expression Parsing/Execution Benchmark > Parsing: {{foo}} = conditional(conditional(true = false, false, true), conditional(false = false, true, false), conditional(true = true, false, true)) (sync) |
147.50K ops/s | 162.55K ops/s | -9.3% |
core/player/src/expressions/__tests__/performance.bench.ts > Expression Parsing/Execution Benchmark > Parsing: {{foo}} = conditional(conditional(true = false, false, true), conditional(false = false, true, false), conditional(true = true, false, true)) (async) |
148.07K ops/s | 150.54K ops/s | -1.6% |
core/player/src/expressions/__tests__/performance.bench.ts > Expression Parsing/Execution Benchmark > Parsing: {{foo}} = await(asyncTestFunction(1)) (sync) |
N/A | N/A | N/A |
core/player/src/expressions/__tests__/performance.bench.ts > Expression Parsing/Execution Benchmark > Parsing: {{foo}} = await(asyncTestFunction(1)) (async) |
283.91K ops/s | 288.21K ops/s | -1.5% |
core/player/src/expressions/__tests__/performance.bench.ts > Expression Parsing/Execution Benchmark > Parsing: {{foo}} = asyncTestFunction(1) (sync) |
347.70K ops/s | 335.04K ops/s | +3.8% |
core/player/src/expressions/__tests__/performance.bench.ts > Expression Parsing/Execution Benchmark > Parsing: {{foo}} = asyncTestFunction(1) (async) |
295.04K ops/s | 294.63K ops/s | +0.1% |
core/player/src/expressions/__tests__/performance.bench.ts > Expression Parsing/Execution Benchmark > Parsing: asyncTestFunction(1) (sync) |
825.15K ops/s | 847.25K ops/s | -2.6% |
core/player/src/expressions/__tests__/performance.bench.ts > Expression Parsing/Execution Benchmark > Parsing: asyncTestFunction(1) (async) |
636.24K ops/s | 653.12K ops/s | -2.6% |
core/player/src/expressions/__tests__/performance.bench.ts > Expression Parsing/Execution Benchmark > Parsing: {{foo}} = conditional(!{{bar}} == false, await(asyncTestFunction(1)), false) (sync) |
186.44K ops/s | 182.70K ops/s | +2.0% |
core/player/src/expressions/__tests__/performance.bench.ts > Expression Parsing/Execution Benchmark > Parsing: {{foo}} = conditional(!{{bar}} == false, await(asyncTestFunction(1)), false) (async) |
172.75K ops/s | 161.94K ops/s | +6.7% ✅ |
core/player/src/view/resolver/__tests__/index.bench.ts > resolver benchmarks > initial resolve |
565.30 ops/s | 651.62 ops/s | -13.2% |
core/player/src/view/resolver/__tests__/index.bench.ts > resolver benchmarks > Resolving from cache |
16.32K ops/s | 20.55K ops/s | -20.6% |
core/player/src/view/resolver/__tests__/index.bench.ts > resolver benchmarks > data changes |
2.98K ops/s | 3.02K ops/s | -1.1% |
core/player/src/view/resolver/__tests__/index.bench.ts > resolver benchmarks > data changes slow |
649.01 ops/s | 651.18 ops/s | -0.3% |
plugins/async-node/core
| Benchmark | Current | Baseline | Change |
|---|---|---|---|
plugins/async-node/core/src/__tests__/index.bench.ts > async node benchmarks > Resolve Async Node 1 times |
13.12K ops/s | 13.53K ops/s | -3.0% |
plugins/async-node/core/src/__tests__/index.bench.ts > async node benchmarks > Resolve Async Node 5 times |
13.32K ops/s | 12.96K ops/s | +2.8% |
plugins/async-node/core/src/__tests__/index.bench.ts > async node benchmarks > Resolve Async Node 10 times |
10.00K ops/s | 9.80K ops/s | +2.1% |
plugins/async-node/core/src/__tests__/index.bench.ts > async node benchmarks > Resolve Async Node 50 times |
3.35K ops/s | 3.22K ops/s | +3.9% |
plugins/async-node/core/src/__tests__/index.bench.ts > async node benchmarks > Resolve Async Node 100 times |
1.72K ops/s | 1.85K ops/s | -6.9% |
plugins/async-node/core/src/__tests__/transform.bench.ts > async transform benchmarks > Resolve Async Node 1 times |
7.59K ops/s | 7.85K ops/s | -3.3% |
plugins/async-node/core/src/__tests__/transform.bench.ts > async transform benchmarks > Resolve Async Node 5 times |
8.40K ops/s | 8.39K ops/s | +0.1% |
plugins/async-node/core/src/__tests__/transform.bench.ts > async transform benchmarks > Resolve Async Node 10 times |
7.67K ops/s | 7.53K ops/s | +1.8% |
plugins/async-node/core/src/__tests__/transform.bench.ts > async transform benchmarks > Resolve Async Node 50 times |
2.87K ops/s | 2.80K ops/s | +2.5% |
plugins/async-node/core/src/__tests__/transform.bench.ts > async transform benchmarks > Resolve Async Node 100 times |
1.59K ops/s | 1.58K ops/s | +0.8% |
plugins/streaming-data/core ⚠️
| Benchmark | Current | Baseline | Change |
|---|---|---|---|
plugins/streaming-data/core/src/__tests__/index.bench.ts > store operations > ingest 10000 records in 500-record pages (view rebuilt per page) |
1.13K ops/s | 4.49K ops/s | -74.8% |
plugins/streaming-data/core/src/__tests__/index.bench.ts > store operations > sort 10000 records on a numeric string field |
45.00 ops/s | 103.63 ops/s | -56.6% |
plugins/streaming-data/core/src/__tests__/index.bench.ts > store operations > search 10000 records for a substring |
128.30 ops/s | 395.30 ops/s | -67.5% |
plugins/streaming-data/core/src/__tests__/index.bench.ts > store operations > ingest 50000 records in 500-record pages (view rebuilt per page) |
53.89 ops/s | 298.31 ops/s | -81.9% |
plugins/streaming-data/core/src/__tests__/index.bench.ts > store operations > sort 50000 records on a numeric string field |
6.12 ops/s | 15.09 ops/s | -59.4% |
plugins/streaming-data/core/src/__tests__/index.bench.ts > store operations > search 50000 records for a substring |
27.74 ops/s | 78.67 ops/s | -64.7% |
plugins/streaming-data/core/src/__tests__/index.bench.ts > player integration > stream 10000 records through player with a live view |
21.11 ops/s | 41.20 ops/s | -48.8% |
plugins/streaming-data/core/src/__tests__/index.bench.ts > player integration > random field reads with 10000 records loaded |
4.09K ops/s | 14.40K ops/s | -71.6% |
plugins/streaming-data/core/src/__tests__/index.bench.ts > player integration > stream 50000 records through player with a live view |
2.13 ops/s | 5.61 ops/s | -62.0% |
plugins/streaming-data/core/src/__tests__/index.bench.ts > player integration > random field reads with 50000 records loaded |
5.49K ops/s | 14.36K ops/s | -61.8% |
react/player
| Benchmark | Current | Baseline | Change |
|---|---|---|---|
react/player/src/asset/__tests__/index.bench.tsx > ReactAsset benchmarks > Render asset nested in 1 ReactAssets |
647.92 ops/s | 646.92 ops/s | +0.2% |
react/player/src/asset/__tests__/index.bench.tsx > ReactAsset benchmarks > Bubble errors nested in 1 ReactAssets |
1.17K ops/s | 1.18K ops/s | -0.3% |
react/player/src/asset/__tests__/index.bench.tsx > ReactAsset benchmarks > Render asset nested in 5 ReactAssets |
647.54 ops/s | 652.70 ops/s | -0.8% |
react/player/src/asset/__tests__/index.bench.tsx > ReactAsset benchmarks > Bubble errors nested in 5 ReactAssets |
1.15K ops/s | 1.16K ops/s | -0.4% |
react/player/src/asset/__tests__/index.bench.tsx > ReactAsset benchmarks > Render asset nested in 10 ReactAssets |
652.85 ops/s | 662.69 ops/s | -1.5% |
react/player/src/asset/__tests__/index.bench.tsx > ReactAsset benchmarks > Bubble errors nested in 10 ReactAssets |
917.70 ops/s | 947.49 ops/s | -3.1% |
react/player/src/asset/__tests__/index.bench.tsx > ReactAsset benchmarks > Render asset nested in 50 ReactAssets |
515.61 ops/s | 533.45 ops/s | -3.3% |
react/player/src/asset/__tests__/index.bench.tsx > ReactAsset benchmarks > Bubble errors nested in 50 ReactAssets |
275.02 ops/s | 278.96 ops/s | -1.4% |
react/player/src/asset/__tests__/index.bench.tsx > ReactAsset benchmarks > Render asset nested in 100 ReactAssets |
418.35 ops/s | 428.96 ops/s | -2.5% |
react/player/src/asset/__tests__/index.bench.tsx > ReactAsset benchmarks > Bubble errors nested in 100 ReactAssets |
125.25 ops/s | 130.50 ops/s | -4.0% |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #943 +/- ##
===========================
===========================
☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Bundle ReportChanges will increase total bundle size by 50.89kB (0.85%) ⬆️. This is within the configured threshold ✅ Detailed changes
|
Member
Author
|
/docs |
intuit-svc
added a commit
to player-ui/player-ui.github.io
that referenced
this pull request
Aug 27, 2026
Member
Author
|
/canary |
intuit-svc
added a commit
to player-ui/player-ui.github.io
that referenced
this pull request
Aug 28, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
TBA
Change Type (required)
Indicate the type of change your pull request is:
patchminormajorN/ADoes your PR have any documentation updates?
Release Notes
TBD
📦 Published PR as canary version:
1.2.0--canary.943.42384Try this version out locally by upgrading relevant packages to 1.2.0--canary.943.42384