KPD closed beta Sign inRequest access

How big can a design get?

What we measured when we pushed KPD with oversized designs, and how big a pipeline can get before it slows down.

The short version

Keep each pipeline under about 300 assets. Past that, split the design into several pipelines joined by pipeline boxes. A project can hold 100 pipelines or more without trouble. It is the size of a single pipeline that slows KPD down, not the size of the project.

At a glance

How long an edit takes (adding a note, moving an asset, typing in a property) as one pipeline grows, on a recent Mac. Beyond the times, the rows also say what else changes at each size.

up to 150 assets ~0.1 s Instant. Panning and dragging are smooth.
300 assets ~0.2 s Fine. A noticeable moment per edit. The recommended maximum.
500 assets ~0.6 s Sluggish. Typing lags, dragging judders, a PNG export takes about half a minute.
1,000 assets ~1.5 s Falls apart. Dragging is a slideshow, and the pipeline is too big to export as one picture (KPD says so; before v0.64.0 the tab crashed).
2,000 assets ~5 s Unusable: about 10 seconds to save.
4,000 assets stuck Opens, then every pan freezes the page for ten seconds or more.

Bars use a stretched scale so the small times stay visible. Mac times are estimates from the measurements below (see How we measured).

What counts as an asset

An asset is anything from the palette on the canvas: a topic, connector, Flink statement, consumer group, external system and so on. Notes and group boxes are drawn too, so they add to the cost. The test designs carried about seven notes and one group box for every ten assets, which is typical of a well-documented client design. A pipeline of 300 assets with no notes is about as fast as one of 200 assets with them.

The Contents line on a pipeline's General tab and the status bar both show how many assets a pipeline has.

Keeping a big design fast

The results

These are the measurements behind the summary. They were taken in a browser on a modest test machine (2 processor cores, no graphics card), which is slower than a typical laptop: on a recent Mac expect about half these times, and smoother panning.

One pipeline of growing size

Times in milliseconds (1,000 ms is a second). Frames per second (fps): 60 is smooth, under 20 judders, under 5 is a slideshow. Animate data flow was on, which is the default.

AssetsOpenPan (whole design)Pan (100%)Drag an assetEditUndoSaveExport PNGMemory
3061653 fps55 fpsโ€”95961123.8 s15 MB
12090528 fps39 fps52 fps25224225314 s18 MB
3001,12515 fps20 fps21 fps40250378436 s42 MB
5102,0208 fps13 fps9 fps1,1941,2521,20361 s60 MB
1,0203,4494 fps4 fps1 fps3,0984,7135,077tab crashed*111 MB
2,0106,5122 fps2 fps0 fps10,75518,17020,400tab crashed190 MB
4,02017,0411 fpsEach pan froze the page for about 13 seconds; the test was stopped after 20 minutes.

* Measured with 0.62.2. Since 0.64.0 KPD refuses to export pictures this big, with a message, instead of the tab crashing.

With Animate data flow off

The same pipelines with the moving dots off; the earlier figure (dots on) in brackets.

AssetsPan (whole design)Pan (100%)Drag an assetEditSave
30021 fps (15)31 fps (20)37 fps (21)472 (402)556 (784)
51014 fps (8)20 fps (13)22 fps (9)904 (1,194)882 (1,203)
1,0208 fps (4)10 fps (4)3 fps (1)1,820 (3,098)2,229 (5,077)

Many pipelines in one project

Each pipeline had 30 assets; the canvas showed one of them.

ProjectOpenPanEditSave
1 pipeline, 30 assets61653 fps95112
50 pipelines, 1,500 assets1,00642 fps114162
200 pipelines, 6,000 assets1,83923 fps241482

Whole-project work

The work KPD does without drawing anything, timed on a Mac. Checking the open pipeline happens on every edit; the others run when you ask for them.

ProjectCheck the pipeline (each edit)Validate projectFind in projectDesign documentTerraform
300 assets167087216
1,020 assets672751929350
4,020 assets4981,722662,313202
200 pipelines, 6,000 assets3840961,453246

The checking and exporting stay quick even on huge designs. The time goes on drawing: after each edit the canvas redraws every asset, connection and note.

How we measured

The test designs were made from copies of the Inclined Labs sample, so every asset was fully set up as in a real client design: Flink SQL, schemas, data contracts, governance tags, dead letter topics, shared data products, notes and decisions. Each copy had its own topic names, schemas and compute pools, and every design passed Validate project with no errors or warnings. Sizes ran from 30 to 4,020 assets in one pipeline, and up to 200 pipelines in one project.

For each size, a script drove KPD in a real browser. It opened the project, panned, dragged an asset, added a note and undid it, saved, and exported a PNG, timing each step and recording the longest freeze and the memory used. The whole-project work was also timed on its own, on a Mac, where it ran about twice as fast as on the test machine. Measured with KPD 0.62.2 in October 2026; the developer write-up is docs/SCALE.md in the KPD folder.

Running KPD on your own computer?

You can build the same test designs and time them yourself. The scripts are in scripts/stress/ in the KPD folder, and docs/SCALE.md explains how to run them. Use a separate projects folder for them, not your client work.