exAspArk
exAspArk on Hacker News
Posted by
exAspArk on Wednesday January 07, 2026 @07:33PM
from the show-hn dept.
https://gettelio.com/
Hi HN – founder here.We built Telio to power AI agents for 24/7 call and text support.Voice calls and texts need fast access to context. Our approach: aggregate data from multiple sources into a unified data lakehouse using APIs, webhooks, and logical replication.Key advantages:- Sandboxed read-only environments for AI agents, so they can't disrupt other systems- Storing and processing large...
Posted by
exAspArk on Wednesday May 21, 2025 @02:29PM
from the show-hn dept.
https://bemidb.com/
Hi HN! We're Evgeny and Arjun, and we’re building a simpler way for startups to do data analytics.Since open-sourcing our Postgres read replica optimized for analytics (https://github.com/BemiHQ/BemiDB), we started hearing a familiar story. Teams would connect Postgres, feel relieved that they didn’t have to wrangle complex ETL pipelines, but then hit a wall as soon as they wanted to join data...
Posted by
exAspArk on Friday May 02, 2025 @02:35PM
from the blog.bemi.io dept.
There are a few different approaches. The main categories, from simplest to most complex:
1) Read replicas with copied data. The most straightforward, allowing using the same SQL syntax and tooling. Examples: Postgres read replica and BemiDB (disclaimer: I'm a contributor)
2) Operational databases with integrations. Designed for sub-second real-time, bring their own extended SQL syntax for things like window functions. Examples: Materialize and RisingWave
3) Analytical databases with syncing. Allow writing and reading directly, optimized for analytical workloads. Examples: ClickHouse and DuckDB
4) Data warehouses with ETL. Great for large volumes of data, traditionally used with ETL batch processing. Examples: Snowflake and Redshift
Posted by
exAspArk on Friday March 14, 2025 @09:53AM
from the blog.bemi.io dept.
Posted by
exAspArk on Monday February 10, 2025 @10:17AM
from the blog.bemi.io dept.
Hey HN! We’re Evgeny and Arjun. We’ve built a managed version of BemiDB that syncs with your existing PostgreSQL database and gives you fast analytical queries without heavy ETL pipelines.
BemiDB Cloud automatically replicates your data into an Apache Iceberg table stored in your own S3-compatible bucket. The data is compressed columnar Parquet under the hood. We embed DuckDB for query execution, and we speak the Postgres wire protocol so you can use all your existing ORMs, BI tools, or notebooks.
We’ve seen teams push Postgres read replicas too far for analytics or wrangle big ETL flows. We’re aiming for something simpler. Instead of standing up a data warehouse with complex pipelines, you can point BemiDB at your Postgres instance, click to sync, and start querying. All data remains in an open format so you aren’t locked in.
We’d love your feedback! Check us out at https://bemidb.com and our open source repo at https://github.com/BemiHQ/BemiDB. What do you think?
Posted by
exAspArk on Thursday January 30, 2025 @02:46PM
from the bemidb.com dept.
Our plan is to make BemiDB work with dbt by leveraging the Postgres-compatibility (supported dbt adapters
https://docs.getdbt.com/docs/trusted-adapters). So it should be possible to transform data from Postgres or directly from BemiDB, which may actually perform better.
You're right, the data engineering world is complex, constantly evolving, and has many various solutions. I'd also like to know about any good resources that people use :)
For us, we mostly talked to many potential users asking about their data setups and challenges, and had many conversations with friends and experts in this field. I also read a few weekly newsletters, substracks, and follow people in this space on X (many recently started posting on Bluesky). For a deeper research, reading docs and specs, experimenting, watching talks, listening to podcasts, reading subreddits, etc.
This is a great DIY setup. We're hoping to compress this stack and simplify it down to a single binary
Yes!
BemiDB natively supports two storage layers, a local disk and S3 (we assumed that most people would choose this in production environments to simplify management).
When I query Iceberg tables stored on SSD, it works superfast.
Sorry, we haven't benchmarked it against ClickHouse yet. Our initial point of reference was just Postgres
We haven't tested this with 1TB Postgres databases yet, assuming that most companies operating at this scale already built analytics data pipelines :) I'm curious if you currently move the data from this Postgres to somewhere else, or not yet?
Our initial approach is to do full table re-syncs periodically. Our next step is to enable incremental data syncing by supporting insert/update/delete according to the Iceberg spec. In short, it'd produce "diff" Parquet files and "stitch" them using metadata (enabling time travel queries, schema evolution, etc.)
That's why our current approach is to build missing or not fully functional features ourselves to move fast. For example, DuckDB performs reads from Iceberg tables not according to the spec, can't perform writes, etc.
Great ideas! We'll keep this suggestion related to read/write separation in mind. We started with a simple unified solution, but we'll keep iterating, listening and addressing any feedback :)
My few cents:
- Compute and storage separation simplifies managing a system making compute "ephemeral"
- Compute resources can be scaled separately without worrying about scaling storage
- Object storage provides much higher durability (99.999999999% on S3) compared to disks
- Open table formats on S3 become a universal interface in the data space allowing to bring many other data tools if necessary
- Costs at scale can actually be lower since there is no data transfer cost within the same region. For example, you can check out WarpStream (Kafka on object storage) case studies that claim saving 5-10x
I'd say that querying data from S3 is not ideal when low-latency queries are required. Generally, there could be a few roundtrip requests to fetch metadata (JSON, Avro) and data (Parquet) files, which may lead to around 1s or so latency. However, we have caching on our roadmap (it could be just a simple TTL for the fetched data or some more sophisticated caching depending on the synced & queried data)
Oh, interesting, thanks for sharing it!
Good point. For more complex scenarios, people would still be able to implement, for example, a Medallion Architecture to progressively improve data quality and structure. Because it is Postgres- and Iceberg-compatible (db and data), it's possible to bring more other advanced data tools when it's needed to perform data transformation and movement. Currently, we see it as a Postgres read replica for analytics. But it's easy to imagine that in the future it could be used as a standalone OSS database on top of a data lakehouse with an open format in S3.
Haha, it's awesome for isolating project environments (languages, databases, etc.) without using docker
Would you be able to share how you implemented "bulk-appended using a separate infrastructure" at a high level?
Iceberg for the win!
We actually separate Read/Write paths. BemiDB reads by levering DuckDB as a query engine. And it writes to Iceberg completely separately from DuckDB. I'm curious if that's what you imagined.
Exactly! You can run it on any server connecting to any Postgres, without installing custom extensions (AWS Aurora supports only a limited number of extensions
https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQ...).
The Iceberg tables are created separately from the DuckDB query engine. So you should be able to read these Iceberg tables by using any other Iceberg-compatible tools and services like AWS Athena.
Our philosophy in general is to go to a more open license over time (vs the other direction). So we might consider other more permissive OSI-approved licenses.
Would you be able to share why AGPL license is a no-go for you? I'm genuinely curious about your use case. In simple words, it'd require a company to open source their BemiDB code only if they made modifications and were distributing it to other users (allowing modifications and using it internally without any restrictions)
Got it, thanks for sharing it! We'll try to look into DBT-3 and the indexes it creates to test with SF10
Thank you, please give it a try!
Great questions:
1. We currently don't support multi-dimensional arrays, but we plan to add support for such complex data structures.
2. Would you be able to share what type of user-defined functions are these, do they do modify the data or read it?
Full table re-syncing is our initial solution. Using Postgres logical replication is next on our roadmap!