Saturday, 31 October 2026

19 entries · final
Concept of the day · architecture

Transactional Outbox

The only reliable way to both commit a row and publish an event.

The mechanism. You cannot atomically write to your database and publish to a broker — there is no shared transaction. So write the event into an outbox table inside the same database transaction as the state change. A separate process reads unpublished rows and sends them to the broker, marking them sent. The commit is atomic; the publish is at-least-once.

The bug it prevents. The naive version does db.commit() then broker.publish(). Crash between them and the order exists but no one was told — a silent, permanent inconsistency that no retry can detect. Swap the order and you get phantom events for orders that do not exist. There is no ordering of two non-transactional calls that is correct.

Reading the outbox. Polling is simple and fine at modest scale (SELECT ... WHERE published_at IS NULL ORDER BY id LIMIT n FOR UPDATE SKIP LOCKED). Change Data Capture is better at scale: Debezium tails the write-ahead log, so there is no polling load and ordering comes from the log itself. SKIP LOCKED is what makes concurrent pollers safe.

At-least-once is the contract. The relay can crash after publishing and before marking, so consumers will see duplicates. Every consumer needs to be idempotent — dedupe on the event id. If you also need ordering, partition by aggregate id and keep a single consumer per partition.

The inverse, too. The same reasoning applies on the consume side: the inbox pattern records processed event ids in the same transaction as the side effect, which is how a consumer becomes genuinely idempotent rather than hopefully so.

Takeaway. Dual writes are the single most common source of permanent data inconsistency in event-driven systems, and the outbox removes the whole class.

0 of 19 read

Top Reads

5

Articles and engineering write-ups worth the full read.

The federated code forge

tangled.org·Lobsters +1·259 points / 82 comments·2 sourcesdistributedvcsthread →

AI isn't replacing SREs, it's deskilling them

newsletter.signoz.io·Hacker News·549 points / 410 commentsthread →

Haas: Postgres 19 is late, and it's AI's fault

Over the past decade, the timing of PostgreSQL major releases has become very predictable: no earlier than the middle of September, and no later than the middle of October. This year is going to be different. PostgreSQL 19 most likely won’t be released until November, and it’s not impossible that the project could decide to postpone the release further. Moreover, this year, several rather large fe

lwn.net·LWN.net +1·2 sourcescloudinfrapress

Proton's CEO Cancels AI 'Re-Interviews'

404media.co·Hacker News·268 points / 221 commentsthread →

If you love a website, back it up

blog.mistys-internet.website·Lobsters·77 points / 21 commentswebthread →

Shipped

4

Releases, changelogs, cloud and language news.

Introducing Geist Serif

vercel.com·Vercel +1·77 points / 23 comments·2 sourcescloudinfrathread →

E-Maj 5.0.1 : Major Security Update.

We are very glad to announce the E-Maj 5.0.1 version. E-Maj is a PostgreSQL extension which enables fine-grained write logging and time travel on subsets of the database. This version mainly fixes a vulnerability encountered in all previous versions, allowing some users to gain superuser privileges under certain circumstances. Users are strongly encouraged to update their installed version as soon

postgresql.org·PostgreSQL Newspostgres

Amazon Bedrock expands API support and introduces Cross-Region Inferencing for OpenAI models in AWS GovCloud (US)

Amazon Bedrock now supports the OpenAI GPT-5.6 models (Terra and Luna) on the bedrock-runtime endpoint, with support for the Responses, Converse, and Chat Completions APIs in AWS GovCloud (US). It also adds support for Cross-Region Inference, allowing customers to use Cross-Region Inference within AWS GovCloud (US) regions to access higher throughput and increased redundancy. Cross-Region Inferenc

aws.amazon.com·AWS What's Newgeneral:products/aws-govcloud-us,general:products/amazon-bedrockcloudinfra

Cloudflare services for private origins is now generally available

Today, Cloudflare services for private origins is generally available. Point a proxied DNS record at a private IP, and Cloudflare reaches the origin over your existing Cloudflare One connection . Your origin stays private, while web application firewall ( WAF ), caching , bot management , and Workers work just as they do for public origins. In June, we launched this capability in closed beta to ad

blog.cloudflare.com·Cloudflareapplication servicescloudflare onecloudflare zero trust

Repos

3

Projects gaining real traction, and what they actually do.

github/gitignore

A collection of useful .gitignore templates

github.com·GitHubgitgitignore

obra/superpowers

An agentic skills framework & software development methodology that works.

github.com·GitHubshellaibrainstorming

Herdr has released native app

github.com·Hacker News·350 points / 243 commentsthread →

Discussion

3

Threads where the comments are the content.

US tech stocks see sharp falls over AI cost fears

bbc.co.uk·Hacker News·248 points / 280 commentsthread →

Cisco gives engineer unlimited AI tokens to rewrite legacy code

fortune.com·Hacker News·144 points / 184 commentsthread →

Ask HN: Are you tired too in this AI era?

Although AI lets us do much more, I feel considerably more tired than before. We need to keep track of many things happening in parallel and read enormous amounts of generated text. The constant guardrailing, decision making, and context switching overload me. I am pretty sure most of you are experiencing the same as me, but: Have you found ways of using AI without increasing mental overload? I wo

news.ycombinator.com·Hacker News·144 points / 139 comments

AI

3

Capped on purpose, so it does not eat the edition.

Backdoors in Claude Code for VS, Cursor official extensions

cyberplace.social·Lobsters +1·655 points / 38 comments·2 sourcessecuritythread →

Backdoor in Claude Code for VS Code extension on the Cursor Marketplace

https://cursor.com/blog/claude-code-extension-security-notic...

phorion.io·Hacker News·857 points / 512 commentsthread →

dbreunig/nesformer

dbreunig/nesformer Inspired by qwenputer by Divyansh Agrawal, Drew Breunig baked a working emulator for a Nintendo Entertainment System 6502 CPU into the weights of Qwen3.5-4B. You can now play NES ROMs such as Super Mario Bros (very slowly) running inside Qwen! In a comment on Hacker News Drew reveals the Opus 5.5 prompts he used to build this system: Read this article and any relevant source cod

simonwillison.net·Simon Willisongamesaigenerative-ai

Deep

1

One paper or long teardown.

When Imputation Changes the Nearest Neighbor: Exact Certification of Similarity Retrieval for Incomplete Sensor Time Series

Sensor time series routinely reach similarity search with missing values, and the retrieved neighbours then depend on how the gaps were filled. We ask which retrieval conclusions hold for every admissible completion of an incomplete query. For a family of window-minimum distances that contains the $L_1$ distance as its separable end we give a pairwise certificate that one candidate is strictly clo

arxiv.org·arXiv CScs.dbcs.dspaper

Revision

2 from earlier editions

Answer each one before you open it.

What can a vector clock tell you that a wall-clock timestamp cannot?3d ago

Wall clocks cannot order events across machines; counters can.

Concept · Vector Clocks and Logical Time
What is the system doing wrong when it buffers instead of applying backpressure?10d ago

A queue that cannot say no is a queue that will fall over.

Concept · Backpressure