The server no longer stalls when many cards land
When many cards landed one after another, Obeya's server froze for half a second at a time: no page got an answer and no agent was heard. Every change on the canvas rebuilt the whole canvas view at once, dozens of times in a row. Now everything that reacts to changes hears of them once the run is through, the cards are built without the rest of the view, and one archived card is looked up without building the whole archive.
A landing of 30 cards, on a copy of the Obeya canvas
How long the server stands still while 30 cards each change, are read back and have their shared page looked up. The canvas has 860 cards, 710 archived and 240 shared.
The same on a test canvas, while the machine is busy
The new test builds a canvas of 900 cards (800 archived, 300 shared) and runs that landing. It ran here alongside the full test suite, as when agents work on the machine. It fails above half a second.
Reading one card back after a change
What the server pays each time code reads a card back after changing it (on the copy of the Obeya canvas).
All numbers as a table
| Measure | Before | After |
|---|---|---|
| Landing of 30 cards, copy of the Obeya canvas | 603–670 ms | 104–111 ms |
| Landing test, idle machine | 412 ms | 78 ms |
| Landing test, alongside the full test suite | 1284 ms | 124–253 ms |
| Read a card back after a change | 4.9 ms | 1.4 ms |
| Read an archived card back after a change | 14.0 ms | 1.6 ms |