Almog

Almog

@almog.xyz

Favorite Buzzwords: Kafka Streams | SlateDB | Stream Processing | Distributed Databases co-founder @ https://responsive.dev

2.8K followers234 following145 posts

I know "measure twice, cut once" applies to performance optimizations, but where's the fun in that? I am quite proud of my lopsided planter boxes and custom memory allocators.

I regularly get asked "how do you create your diagrams for your blogs"? Recently I've been using my own tool, and I'm open sourcing it! Yuzudraw is a visual editor for ASCII that has a token-efficient DSL that lets agents generate/modify your diagrams. Give it a ⭐! github.com/agavra/yuzud...

github.comGitHub - agavra/yuzudraw: ASCII diagramming tool for both humans and agentsASCII diagramming tool for both humans and agents. Contribute to agavra/yuzudraw development by creating an account on GitHub.

“Gradually, then suddenly.” That’s how adoption works when you’re building something new. Opendata is still "gradually" but 100 stars with $0 spent on marketing is a good start. Back to building! github.com/opendata-oss...

Calling database nerds in SF! I'm covering SlateDB at the systems meetup next Wednesday (10/29). If you're around, I'd love to meet you in person (that way you'll have proof I'm not just an AI bot). 👉 luma.com/e7feg2i6

Despite using so many new technologies, I somehow never learn my lesson: read the docs sooner and read the docs thoroughly.

One day I'll open a coffee shop dedicated to the not-insignificant intersection between database nerds and coffee snobs. Until then, enjoy this comic.

The new electric Caltrain cars have WiFi. 🙏 SF bay area has finally entered the 21st century (on this dimension of public transit only).

Prompt engineering was v0. Context engineering is v1.0. How should you think about supplying LLMs with the right information? 📖 [1/N]

View full thread

I built a demo agent for hotel booking. My setup: Inject request context into the prompt (user prefs, budget, pulled from account) Fetch response context live using MCP tools (available hotels that match search params) Result: the agent felt way smarter. [5/N]

This got me thinking: Should MCP itself formally distinguish between request vs response context? It could let LLMs be more intelligent about when to pull extra info. 🤔 [6/6]

Prompt engineering was v0. Context engineering is v1.0. How should you think about supplying LLMs with the right information? 📖 [1/N]

View full thread

Example: a hotel booking agent 🛌 Request context: "Book a hotel in Barcelona on April 28 under $400" Response context: A list of hotels available in Barcelona that day, within budget. [3/N]

Back when we only had prompts, you could frame the task (request context). Today, tools like MCP change the game. But should you use them? [4/N]

Prompt engineering was v0. Context engineering is v1.0. How should you think about supplying LLMs with the right information? 📖 [1/N]

⚖️ You need to balance two types of context: Request Context = frames the task Response Context = info needed to complete it [2/N]

"Kafka Configs: A Rube Goldberg Machine?" - an actual quote from a customer after discussing cleanup.policy and Kafka Streams changelogs.

Almog reposted

SlateDB now has clones 🤯 Users can clone an existing DB's data to a new location. It's nearly instantaneous since it references the data from the old bucket rather than copying. Writes to the clone update the new location. Compaction lazily merges old data into the new directory./ht @responsive.dev

github.comInitial clone implementation by hachikuji · Pull Request #430 · slatedb/slatedbFixes #315. This patch contains the logic to create and initialize clones as outlined in RFC-0004.

As part of my post-Elden Ring hunt for a game, I tried Balatro last night. I'm starting to think I may have made a mistake.

My hobbies all have the ability to "reclaim" waste: 🪴 for ceramics, wasted clay from throwing goes right back in to your next pot 🪵 for wood working, reusing 2x4s is second nature 🥘 for cooking, leftover food is tossed into salads 💻 what's for software? bin-packing containers? 😆

Kafka Streams 101: Windows & Time! 🕰️ What's the difference between event, stream and wall clock time? 🪟 What are the four different types of windows? ⁉️ What are the important error messages and metrics, and what do they mean? 👉 Read the full lesson here: www.responsive.dev/blog/windows...

🙏 A @notion.com feature on my wishlist: @jetbrains.com IDEs have this features that lets you select the open file in the nav hierarchy. I've always wanted to be able to do this in Notion so I can more easily explore without navigating away from a page.

Kicking the tires on animated explanations of windowing strategies in Kafka Streams. Would love feedback on if this animation for session windows resonates: they keep growing until there is an 'inactivity gap' (no events for the key). This here shows a session window with inactivity gap of 10.

There are some learnings that only come from having seen a wildly successful technology go from a nascent project to ubiquitous. These insights can change the trajectory for new tech. Jason's summary about error handling is a great read for practical engineers: github.com/slatedb/slat...

github.comAPI Error Guidance · Issue #454 · slatedb/slatedbDumping a few thoughts on API errors. At the moment, we have a single flat error SlateDBError which is exposed through the public API. This is the same pattern used in Kafka and there are some less...

I just discovered @localfirst.fm and can’t help but compare the parallels between that movement and the resurgence of popularity of embedded data systems & BYOC (or even on prem) tech. “Serverless” has its uses, but the limitations are increasingly clearer.

I wish @xkcd.com published an autobiography. Somehow their work constantly hits bullseye and I’d love to get just a glimpse of the story behind the person that generates creativity in the same league as history’s greatest artists.

Almog reposted

[1/5] Hey fellow Kafka Streams otters! You may have already seen my previous blog posts such as the "Debugging Rebalances" and "EOS guide" from last year (and if you haven't, go check them out! Links in thread) But now it's 2025, and time for me to think about what to write next...

[1/2] Tombstones & consistency in distributed databases: you have to take care when deleting rows! 😨 If there's no data for a key, it could mean: 🌱 First write attempt 🪦 Deleted but no longer retained What if it's a zombie writer that needs to check the row's epoch?

[2/2] If no data exists, zombies won't get fenced—there’s no epoch to check against! Solution: Borrowing a trick from ScyllaDB & Cassandra, we retain tombstones for longer than needed (e.g., 12 hrs). This ensures zombies are fenced before cleanup. 🕰️ More details in an excellent post 👇

scylladb.comPreventing Data Resurrection with Repair Based Tombstone Garbage Collection - ScyllaDBLearn how we are improving ScyllaDB by implementing a more robust underlying tombstone garbage collection method based on row-level repair.

Single-writer systems are 🤩 - they transform traditional transactions into a much simpler problem: fencing zombies. This allows read-modify-write without coordination, instead relying on commits to discard data if its fenced (rare). SlateDB enforces single-writer. Let the use cases "sync" in 😉

I've learned more about ACID in the last two days reviewing the discussion on github.com/slatedb/slat... than I have in the last decade in industry. A big takeaway is that using object store for durability opens a new can of worms that existing systems can ignore (high write latency).

github.comdocs: Add rfc about Transaction by flaneur2020 · Pull Request #260 · slatedb/slatedbfixes #248 this doc is still in WIP, but the discussion is open here. TLDR of this doc: Snapshot (with sequence number in keys) and WriteBatch are MUST before working on the Transaction feature SS...

Interviewer: Can you explain this gap in your resume? Kafka Streams: I was taking some R&R… rebalancing and restoration.

Gwen Shapira@gwenshap.bsky.social

Interviewer: Can you explain this gap in your resume? DevOps: It is running on us-east-1

Almog reposted

Kafka Streams has officially come to Bluesky! Follow this account for updates on everything Kafka Streams and keep up to date with new features, bug fixes, and upcoming KIPs. Long live the otter!