blog: Durable Streams at kernel speed (draft)#4653
Merged
Conversation
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>
✅ Deploy Preview for electric-next ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
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>
samwillis
approved these changes
Jun 26, 2026
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>
- 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>
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.
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
website/blog/posts/2026-06-25-durable-streams-at-kernel-speed.md(author: Valter Balegas)description,excerpt,outline: [2, 3], tags)header.jpg).mmdsources kept alongside the SVGs for future edits./streams/) per repo conventionpublished: false(kept as draft)Open TODOs before publishing (flagged inline as
<!-- TODO ... -->)(#)placeholders (reference-server deploy guide, architecture doc), in both the top callout and the closing paragraphpublished: false→trueonce the above are resolved🤖 Generated with Claude Code