HackerTrans
TopNewTrendsCommentsPastAskShowJobs

exAspArk

no profile record

Submissions

Show HN: Telio – AI agents for call/text support, built on sandboxed lakehouses

gettelio.com
2 points·by exAspArk·قبل 6 أشهر·0 comments

[untitled]

1 points·by exAspArk·قبل 11 شهرًا·0 comments

[untitled]

1 points·by exAspArk·قبل 11 شهرًا·0 comments

Show HN: BemiDB – Open-source data warehouse with zero-ETL

bemidb.com
13 points·by exAspArk·السنة الماضية·2 comments

Product Analytics Queries Without Database Meltdown

blog.bemi.io
3 points·by exAspArk·السنة الماضية·0 comments

Cloud Data Analytics Is a Scam

blog.bemi.io
4 points·by exAspArk·السنة الماضية·0 comments

Data Analytics with PostgreSQL: The Ultimate Guide

blog.bemi.io
2 points·by exAspArk·السنة الماضية·0 comments

BemiDB – Zero-ETL Analytics on Postgres

bemidb.com
5 points·by exAspArk·السنة الماضية·1 comments

Show HN: BemiDB – Postgres read replica optimized for analytics

github.com
209 points·by exAspArk·قبل سنتين·117 comments

It's Time to Rethink Event Sourcing

blog.bemi.io
4 points·by exAspArk·قبل سنتين·0 comments

Choosing the Right Audit Trail Approach in Ruby

blog.bemi.io
46 points·by exAspArk·قبل سنتين·7 comments

How Change Data Capture Powers Modern Apps

blog.bemi.io
2 points·by exAspArk·قبل سنتين·0 comments

The Ultimate Guide to PostgreSQL Data Change Tracking

exaspark.medium.com
3 points·by exAspArk·قبل سنتين·0 comments

Bemi: Automatic PostgreSQL Audit Trail

bemi.io
2 points·by exAspArk·قبل سنتين·0 comments

Show HN: Bemi – context-aware data change tracking for Prisma

github.com
3 points·by exAspArk·قبل 3 سنوات·0 comments

Show HN: Bemi for TypeORM – automatic data change tracking

github.com
4 points·by exAspArk·قبل 3 سنوات·0 comments

comments

exAspArk
·السنة الماضية·discuss
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
exAspArk
·السنة الماضية·discuss
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?
exAspArk
·قبل سنتين·discuss
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.
exAspArk
·قبل سنتين·discuss
This is a great DIY setup. We're hoping to compress this stack and simplify it down to a single binary
exAspArk
·قبل سنتين·discuss
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.
exAspArk
·قبل سنتين·discuss
Our initial approach was to implement periodic full table re-syncing. We're starting to work on CDC with logical replication for incremental syncing. Here is our roadmap https://github.com/BemiHQ/BemiDB#future-roadmap
exAspArk
·قبل سنتين·discuss
Sorry, we haven't benchmarked it against ClickHouse yet. Our initial point of reference was just Postgres
exAspArk
·قبل سنتين·discuss
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?
exAspArk
·قبل سنتين·discuss
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.)
exAspArk
·قبل سنتين·discuss
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.
exAspArk
·قبل سنتين·discuss
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 :)
exAspArk
·قبل سنتين·discuss
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
exAspArk
·قبل سنتين·discuss
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)
exAspArk
·قبل سنتين·discuss
Oh, interesting, thanks for sharing it!
exAspArk
·قبل سنتين·discuss
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.
exAspArk
·قبل سنتين·discuss
Haha, it's awesome for isolating project environments (languages, databases, etc.) without using docker
exAspArk
·قبل سنتين·discuss
Would you be able to share how you implemented "bulk-appended using a separate infrastructure" at a high level?
exAspArk
·قبل سنتين·discuss
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.
exAspArk
·قبل سنتين·discuss
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.
exAspArk
·قبل سنتين·discuss
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)