Thanks for this article. I like you app. And i have one question. Why did not you use clickhouse for metadata too and ise it postgres? I think one database is batter than two?) I see that similar apps like a signoz and qryn store all metadata to clickhouse too
For practical reasons:
PostgreSQL has unique indexes, ON CONFLICT, MERGE queries etc. It is not that easy to correctly implement that with ClickHouse (ReplacingMergeTree etc).
PostgreSQL has full text search capabilities and faceted navigation can be easily built on top of it.
PostgreSQL has lots of decent options for backups. ClickHouse recently got built-in backup capabilities too, but it was not available "back in the days".
When you run a cloud service, having multiple databases offers extra flexibility, for example, I can stop ClickHouse database for maintenance but PostgreSQL will be still available.
And i really like it https://uptrace.dev/get/opentelemetry-js-web.html
Monitoring CPU/RAM/disk metrics with OpenTelemetry and Uptrace