Ecommerce experience telemetry02 studies · 03 actions

Feel the cart.
Measure the wire.

Compare serialization or browser transports across realistic catalog writes, product detail reads, and full-text searches through one Worker and one D1 database.

04 encodings 03 transports 03 commerce actions

Benchmark architecture

Worker Static Assets Astro client
REST · gRPC-Web · WS
Same-origin ecommerce API Cloudflare Worker
native binding
SQLite + FTS5 Cloudflare D1

Serialization mode keeps REST fixed while formats change. Transport mode fixes Protobuf while REST, gRPC-Web, and a warm WebSocket execute the same validated D1 action.

01

Worker endpoint

Same-origin WorkerStatic Assets + API + native D1
02

Study design

Study mode
REST serialization formats

CBOR is a binary application serialization—not PostgreSQL JSONB and not a special D1 column type.

Ecommerce actions · same D1 operations

Run Create product by itself. Keep detail and search runs on a frozen corpus.

03

Live run

Idle
0% Waiting for a run
Current cell
Latest action
Requests0
Errors0

Choose one study mode, validate the Worker, and start a controlled ecommerce run.

UI rendering is throttled while samples run to reduce measurement interference.
04

Latency board

Run a study to populate action latency, actual protocol, payload, and error distributions.

No samples yet

Results stay local in this browser until you export them.

05

What this measures

Serialization results cover encode through decoded response. Transport results fix Protobuf and compare REST, gRPC-Web, and warm WebSocket messages against the same ecommerce action.

  1. Choose one question. Serialization varies formats; Transport varies stacks.
  2. Validate the wire. Results are grouped by actual H2, H3, or WebSocket opening protocol.
  3. Separate setup. WebSocket handshake time is reported outside warm message RTT.
  4. Raise sample count. Use 1,000+ samples before trusting p99.
  5. Keep conditions fixed. Do not mix browsers, network paths, replication, or regions.

gRPC-Web is not native gRPC. CBOR is not PostgreSQL JSONB. H2/H3 cannot be selected by page JavaScript, so required-protocol fallbacks remain visible as errors.