News for hackers. Stuff that matters.

cauchyk

Re:PostgreSQL for Everything on Wednesday August 19, 2026 @12:05PM (#49363406)
as someone who loves postgres, this take is getting pretty old. yes we can do quite a bit with extensions but extensions often need to interface with external systems and even then managed providers don't consistently support all extensions. some gaps: bm25 indexes, olap support, also extensions also run into licensing restrictions.

Show HN: A modern C++20 AI SDK (GPT‑4o, Claude 3.5, tool‑calling)

Hi all,I’m hacking on new features for the ClickHouse native client and wanted the same “just call the model” ergonomics JavaScript and Python now enjoy. It didn’t exist for modern C++, so I wrote one.ai‑sdk‑cpp (Apache‑2.0) gives you:- Unified calls to OpenAI (GPT‑4o) and Anthropic (Claude 3.5) with a single C++20 API. - Streaming, multi‑turn chat, error handling—all...

( Read More... | 6 comments | on HN )

Change Data Capture (CDC) Tools should be database specialized not generalized

Reference: https://x.com/saisrirampur/status/1824694191537959159 Parent Tweet: https://x.com/craigkerstiens/status/1824114371737616794Change Data Capture(CDC) is hard, it has 100s of edge cases / failure points. At PeerDB (https://www.peerdb.io/) , instead of focusing on multiple sources we just focused on Postgres. This helped us ensure that we gave enough care to iron out as many edge cases...

( Read More... | 1 comment | on HN )
We've been using the Ubicloud runner for a while at PeerDB[1]. Great value and specially the ARM runners have been helpful to get our CI costs down. The team is really responsive and added the arm runner support within a few weeks of us requesting it.

[1] https://github.com/PeerDB-io/peerdb

Re:Building a Streaming Platform in Go for Postgres on Monday November 06, 2023 @05:49PM (#38170268)
Author of the blog here: I'm a huge proponent of Rust, but in this project while interfacing with BigQuery and Snowflake go proved to be the right choice. There weren't official drivers for these in Rust and also generally onboarding new devs in Go was easier. I also personally think async in rust has a few more releases to go before I would consider it stable.
Re:Building a Streaming Platform in Go for Postgres on Monday November 06, 2023 @05:00PM (#38169652)
To get higher throughput we would need one goroutine to pull from the replication slot while the other is pushing to the target. The idea is to keep the Postgres connection useful and reading the slot while also pushing to the target asynchronously.
Re:Building a Streaming Platform in Go for Postgres on Monday November 06, 2023 @04:46PM (#38169464)
Not all of our code is in Go. PeerDB has multiple components: the workers, the UI and the query layer. Some of which is in Rust, Go and Typescript.

While it would certainly be possible to package them into individual binaries, I found it significantly easier to define the stack in a docker compose file with the requisite environment setup.

Re:Building a Streaming Platform in Go for Postgres on Monday November 06, 2023 @04:43PM (#38169440)
Author of the blog here, curious what a better alternative would be in this context. The channel has to be passed around for the producer and consumer to interface with each other. Are there better patterns for this?
At my previous job there were multiple use-cases where we used RabbitMQ in conjunction with Postgres. This would've made life so much easier.

Are there any instructions on installing? It'd be great if the `.so`s are released as part of GH releases.

Hi there, I’m Kaushik, one of the co-founders of PeerDB. PeerDB doesn’t handle schema changes today.

For CDC, change stream does give us events in case of schema changes, we would have to replay them on the destination. Schema changes on the destination are not supported, the general recommendation is to build new tables / views and let PeerDB manage the destination table.

For streaming the results of a query, as long as the query itself can execute (say a few columns were added or untouched columns were edited) mirror job will continue to execute. In case this is not the case, there will be some manual intervention needed to account for the schema changes.

Thanks for the question, this is a requested feature and on our roadmap.

A lot of the power that flutter has comes from hot-reload. Dart + JIT powers this. I noticed that SwiftUI does this too. I wonder if SwiftUI composits and paints onto an underlying CALayer just like flutter does.

Older »