supavisor
Logflare
supavisor | Logflare | |
---|---|---|
15 | 11 | |
1,591 | 778 | |
1.8% | 1.4% | |
8.9 | 9.8 | |
2 days ago | 4 days ago | |
Elixir | Elixir | |
Apache License 2.0 | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
supavisor
-
PostgreSQL Is Enough
WalEx instead of pub/sub (listen/subscribe): https://github.com/cpursley/walex
Supavisor connection pooler: https://github.com/supabase/supavisor
-
Introducing Read Replicas
To make use of your read replicas, copy your connection string for the read replica, update your apps to use the new read replica and you are done! A unique connection pool is also provisioned for each read replica via Supavisor.
-
Supavisor 1.0: a scalable connection pooler for Postgres
[I'm on the supabase team]
You can find the code/docs here: https://github.com/supabase/supavisor
This release adds support for
- SQL Parsing
- Load balancing
- support for named prepared statement
- query cancellation
It's also now available on all new databases in Supabase. For some more background on scalability, we have some benchmarks available here:
https://supabase.com/blog/supavisor-1-million
-
PgBouncer 1.21.0 released with prepared statement support
PgBouncer maintainer here, so obviously biased. But I think currently PgBouncer should still be the default connection pooler that you choose. There's a few newer options: Odyssey, pgcat, and supavisor. But all focus on a solving 1 or 2 specific problems that PgBouncer did not solve well, while not solving many of the other problems that PgBouncer does solve. So if you have the exact same requirements as the authors of those tools, then switching might be good. But otherwise you should probably continue using PgBouncer.
Supavisor specifically is really immature. It's missing some really core functionality like query cancellations: https://github.com/supabase/supavisor/issues/174
I did a talk on this exact topic at PGConf NYC recently. My slides are here: https://github.com/JelteF/slides/raw/main/2023-10-05-future-...
-
Supavisor: Scaling Postgres to 1 Million Connections
If you are interested in exploring Supavisor's potential or want to implement its scalability in your upcoming project, check out the GitHub repository to know more.
-
How to Listen to Database Changes Using Postgres Triggers in Elixir
Phoenix.PubSub is basically a noop service. It really just works. You should try it!
If discovering nodes is difficult in your env, try using a listen/notify libcluster strategy:
https://github.com/supabase/supavisor/blob/main/lib/cluster/...
-
The Database Package Manager for PostgreSQL Trusted Language Extensions
[2] https://github.com/supabase/supavisor
-
Supabase Logs: open source logging server
Supavisor
- Supavisor - Postgres connection pooler written in Elixir
- Supavisor - a Postgres connection pooler written in Elixir
Logflare
-
PostgreSQL Is Enough
btw recently cleaned up my wal cache busting code quite a bit if you're interested.
https://github.com/Logflare/logflare/blob/main/lib/logflare/...
Need to make a lib out of this!!
-
Migrating from Supabase
hey hn, supabase ceo here
the Val Town team were kind enough to share this article with me before they released it. Perhaps you know from previous HN threads that we take customer feedback very seriously. Hearing feedback like this is hard. Clearly the team at Val Town wanted Supabase to be great and we didn’t meet their expectations. For me personally, that hurts. A few quick comments
1. Modifying the database in production: I’ve published a doc on Maturity Models[0]. Hopefully this makes it clear that developers should be using Migrations once their project is live (not using the Dashboard to modify their database live). It also highlights the options for managing dev/local environments. This is just a start. We’re building Preview Databases into the native workflow so that developers don’t need to think about this.
2. Designing for Supabase: Our goal is to make all of Postgres easy, not obligatory. I’ve added a paragraph[1] in the first page in our Docs highlighting that it’s not always a good idea to go all-in on Postgres. We’ll add examples to our docs with “traditional” approaches like Node + Supabase, Rails + Supabase, etc. There are a lot of companies using this approach already, but our docs are overly focused on “the Supabase way” of doing things. There shouldn’t be a reason to switch from Supabase to any other Postgres provider if you want “plain Postgres”.
3. That said, we also want to continue making “all of Postgres” easy to use. We’re committed to building an amazing CLI experience. Like any tech, we’re going to need a few iterations. W’re building tooling for debugging and observability. We have index advisors coming[2]. We recently added Open Telemetry to Logflare[3] and added logging for local development[4]. We’re making platform usage incredibly clear[5]. We aim to make your database indestructible - we care about resilience as much as experience and we’ll make sure we highlight that in future product announcements.
I’ll finish with something that I think we did well: migrating away from Supabase was easy for Val Town, because it’s just Postgres. This is one of our core principles, “everything is portable” (https://supabase.com/docs/guides/getting-started/architectur...). Portability forces us compete on experience. We aim to be the best Postgres hosting service in the world, and we’ll continue to focus on that goal even if we’re not there yet.
[0] Maturity models: https://supabase.com/docs/guides/platform/maturity-model
[1] Choose your comfort level: https://supabase.com/docs/guides/getting-started/architectur...
[2] Index advisor: https://database.dev/olirice/index_advisor
[3] Open Telemetry: https://github.com/Logflare/logflare/pull/1466
[4] Local logging: https://supabase.com/blog/supabase-logs-self-hosted
[5] Usage: https://twitter.com/kiwicopple/status/1658683758718124032?s=...
-
How to get access logs from Cloudflare?
https://logflare.app/ is awesome, pipes into BiqQuery and is really easy to use and WAY cheaper than logpush. Depending on the amount of traffic, it's only a few dollars a month.
-
Supabase Logs: open-source logging server
hey hn, supabase ceo here
this one is a long-time coming and it's a continuation of our acquisition of Logflare[0]. Since the acquisition we've be open-source-ing the server, which you can find here: https://github.com/Logflare/logflare
Logflare handles about 1.5 billion log-events everyday on supabase. It's built with Elixir and has no problems with that workload.
This is really just the start of the Logflare updates. All logs are currently ingested into BigQuery, and we are adding support for Clickhouse and other OLAP backends. Over time this will function very much like an open source Sentry alternative, where you can ingest data from various sources.
The team will be around if you have any questions about the technical implementation
[0] acquision: https://supabase.com/blog/supabase-acquires-logflare
-
Supabase Logs: open source logging server
Logflare was available under a BSL license prior to joining Supabase. We’ve since changed the license to Apache 2.0, aligning it with our open source philosophy.
-
Logging requests with cloudflare
https://www.cloudflare.com/apps/logflare https://logflare.app/
-
Tools for Querying Logs with SQL
Logflare, now a part of Supabase, aims to streamline the logging experience for Cloudflare-, Elixir-, and Vercel-based applications. However, it can be adapted to support any type of log. Logflare provides structured logging ability without limits or added latency. It aims to provide the best performance with minimal overhead when processing logs for supported application platforms.
What are some alternatives?
pgcat - PostgreSQL pooler with sharding, load balancing and failover support.
Hydra - Open source API gateway with integrated cache and data transformations.
pg_tle - Framework for building trusted language extensions for PostgreSQL
n2o - ⭕ N2O: Distributed WebSocket Application Server ISO 20922
mssql-changefeed
Phoenix Toggl - Toggl tribute done with Elixir, Phoenix Framework, React and Redux.
debezium - Change data capture for a variety of databases. Please log issues at https://issues.redhat.com/browse/DBZ.
ExChat - (Not maintaining) A Slack-like app by Elixir, Phoenix & React(redux)
sql-examples - Curated list of SQL to help you find useful script easily 🚀
Phoenix Battleship - The Good Old game, built with Elixir, Phoenix, React and Redux
walex - Postgres change events (CDC) in Elixir
majremind