Skip to content

blog: Durable Streams at kernel speed (draft)#4653

Merged
balegas merged 35 commits into
mainfrom
vbalegas/rust-blog
Jun 26, 2026
Merged

blog: Durable Streams at kernel speed (draft)#4653
balegas merged 35 commits into
mainfrom
vbalegas/rust-blog

Conversation

@balegas

@balegas balegas commented Jun 25, 2026

Copy link
Copy Markdown
Contributor

This adds the "Durable Streams at kernel speed" blog post (Rust reference server). Structure, frontmatter, links, diagrams, and the header image are in place, but the body copy is still under review — a couple of CTA links remain, so please don't publish as-is.

What's done

  • New post at website/blog/posts/2026-06-25-durable-streams-at-kernel-speed.md (author: Valter Balegas)
  • Frontmatter aligned with site conventions (description, excerpt, outline: [2, 3], tags)
  • Header image added (header.jpg)
  • Diagrams — write-path and read-path mermaid sequence diagrams rendered to SVG (this site embeds diagrams as images; no runtime mermaid) and placed in their sections, plus the existing architecture-overview diagram. .mmd sources kept alongside the SVGs for future edits.
  • Internal links use relative paths (/streams/) per repo convention
  • published: false (kept as draft)

Open TODOs before publishing (flagged inline as <!-- TODO ... -->)

  • CTA links — two (#) placeholders (reference-server deploy guide, architecture doc), in both the top callout and the closing paragraph
  • Flip published: falsetrue once the above are resolved

🤖 Generated with Claude Code

Add the Rust reference-server blog post with architecture and WAL
diagrams. Frontmatter, internal links, and image placement finalized;
body copy still has open TODOs (header image, CTA links, benchmark
figures) and is not ready to publish.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@netlify

netlify Bot commented Jun 25, 2026

Copy link
Copy Markdown

Deploy Preview for electric-next ready!

Name Link
🔨 Latest commit 16cbaef
🔍 Latest deploy log https://app.netlify.com/projects/electric-next/deploys/6a3e9392a9abdd00085e7eb2
😎 Deploy Preview https://deploy-preview-4653--electric-next.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

balegas and others added 15 commits June 26, 2026 01:36
Replace body with the author's latest revision. Render the write-path
and read-path mermaid sequence diagrams to SVG and place them in their
sections; keep the .mmd sources for future edits. Drop the superseded
wal-architecture diagram. Normalize heading levels, restore outline/
excerpt frontmatter, and make the streams link relative.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Replace the hand-drawn architecture-map.svg with a mermaid flowchart
  (architecture.svg, source architecture.mmd) for the Architecture section
- Rework the intro: third-wave-of-agents framing, cite serverless agents once
- Standardize byte units to decimal KB/MB/GB (drop MiB/GiB/KiB)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…tion

- Intro: state the one-line thesis (on-disk bytes == on-wire bytes) and
  claim conformance
- Write path: sharpen the single Kafka comparison to the precise durability
  design difference
- Add a short "Persistence and tiered storage" section after the read path

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Convert the write-throughput, memory, and SSE fan-out tables into the
shared column-chart component (as used on the benchmarks docs page and
the v1.1 post). Catch-up stays a table — its rows have mixed units
(ms and MB/s) that a single column chart can't represent.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add an optional yScaleType prop to StorageComparisonChart (defaults to
linear; logarithmic omits the zero min). Enable it on the write
throughput chart so the 2k–860k spread is legible.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
balegas and others added 12 commits June 26, 2026 12:14
Memory becomes a line chart with median (solid) and peak (dashed) per
system, surfacing the init spike and Node's OOM cliff. SSE fan-out
becomes a line chart so rust/ursula parity is visible as overlapping
lines. Drop the now-unused column component import.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add backward-compatible fill/fillColor pass-through to
StorageComparisonChart so a dataset can shade a band to another series.
Shade the memory chart's p50-to-peak spread per system instead of a
bare dashed peak line.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add optional secondary-axis support to StorageComparisonChart (y2 props +
per-dataset yAxisID, per-axis tooltip/tick suffix). Fold the memory range
bands onto the write-throughput chart on a right-hand MB axis, and recover
ursula's memory (p50/peak) from the benchmark report. Drop the now-redundant
standalone memory chart.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Render per-system memory as translucent filled areas on the right axis
(darker p50, lighter max) instead of lines/range bands. Add crates.io
links in the intro and summary release wording, and a future-work block
(performance/memory, multi-node, chaos testing) to the summary.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Write-throughput chart returns to throughput-only lines. Memory usage is
a table again (rust/node/ursula, peak / p50), using the recovered ursula
figures.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
New self-contained MemoryErrorBarChart component renders p50 as grouped
bars with an upward whisker to peak (custom plugin, no new dependency).
Rendered below the memory table.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Catch-up table now includes 200 and 2000 events/stream for rust and node;
ursula's 2000 run choked on stream creation (shown as —), with a note that
— marks a crashed/incomplete run. Memory error-bar chart switches to a log
y-axis with a few round gridlines.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…link rust crate

- Remove the memory table and the memory-optimizations note; keep just the
  p50/peak error-bar chart on a linear axis
- Catch-up table shows only replay throughput (MB/s) for 200 and 2000 events
- Link the "rust" config bullet to the crates.io crate

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ots)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…wo lines

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add an opt-in solidMarkers prop to StorageComparisonChart that fills the
legend and tooltip color box with the line colour instead of a hollow /
white swatch. Enable it on the write-throughput and SSE charts.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Switch rust's series colour to the brand cyan (--electric-color #75fbfd)
across all three charts. Center the replay-throughput table block and its
numeric columns.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
balegas and others added 7 commits June 26, 2026 13:20
- Replace the top callout with an Info "Get started" CTA (crate download,
  Electric Cloud signup, reproduce benchmarks), matching the agents-0.6 style
- Memory usage returns to a table (drop the error-bar chart)
- Add bottom margin to the line-chart wrapper so the x-axis title no longer
  collides with the caption

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Restore the memory error-bar chart and remove the table (keep chart)
- Add a subtitle slot to both chart components; move the SSE caption into
  the chart as a subtitle
- Remove the "— marks a crashed run" note
- Bottom margin on the memory chart too

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Rename post + image folder to durable-streams-in-rust, date to 2026-06-26
- Retitle, reorder CTA, tighten architecture/catch-up/SSE prose
- Hand-authored architecture SVG (transparent, cyan borders, white text);
  re-themed write/read-path mermaid diagrams to match (mermaid-theme.json)
- Charts: move captions into subtitles, memory chart restored, fix axis-label
  overflow by giving the canvas its own flex container + taller default height

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Adopt the latest prose revision and publish it under the kernel-speed
title/slug; rename the post file and image folder back accordingly and
repoint all image references.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@balegas balegas marked this pull request as ready for review June 26, 2026 15:07
@balegas balegas merged commit 71f1dea into main Jun 26, 2026
6 checks passed
@balegas balegas deleted the vbalegas/rust-blog branch June 26, 2026 15:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants