pgsql-http
walex
pgsql-http | walex | |
---|---|---|
17 | 17 | |
1,164 | 256 | |
- | - | |
5.8 | 9.1 | |
25 days ago | 10 days ago | |
C | Elixir | |
MIT License | MIT License |
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.
pgsql-http
- PostgreSQL Is Enough
-
becauseBackendIsJustASocialConstructRight
I don’t understand the question https://github.com/pramsey/pgsql-http
- What are my options to send a notification everytime a new row is inserted into my PostgreSQL RDS database/Aurora database?
-
How to perform authenticated http requests with the http REST client extension?
I am trying to use the supabase http rest client extension to fetch data from an external API. Following the supabase docs and the GitHub repo readme, I have not been able to successfully make a request that requires auth, specifically an API key in the request header with key x-api-key.
-
Sketch of a Post-ORM
- Hasura Remote Schema (https://hasura.io/blog/tagged/remote-schemas/)
If you want more control over the web API and you were going to fetch the data within your Python back-end and process it there, for some use-cases (not all, but some), there are options:
- pg_http (https://github.com/pramsey/pgsql-http)
Life is about trade-offs. Doing the work in SQL is not without its drawbacks, but it's also not without its benefits, and that's true for doing the work in a general-purpose language as well. Whatever the drawbacks of doing it in SQL, one of the benefits has got to be eliminating the impedance mismatch (for people who regard that mismatch as a problem, and the OP seems to be one such person). What I claim is that doing the work directly in the database shouldn't be ruled out in general (the specifics of a given use-case may rule it out in particular) any more the the other common patterns (API hand-written in Python, for instance) shouldn't be ruled out in general.
-
Watching for changes to DB by another app
You could e.g. use the trigger to call http api using e.g. https://github.com/pramsey/pgsql-http
-
How to best fetch JSON data from external API and write to supabase every hour?
I do this all the time just with Postgres functions. Just turn on the following extensions: http (https://github.com/pramsey/pgsql-http) pg_cron (https://github.com/citusdata/pg\_cron)
- What's Postgres Got to Do with AI?
- Edge Functions or Database Functions?
- Pgsql-HTTP: HTTP client for PostgreSQL
walex
-
The Guide to PostgreSQL Data Change Tracking
The WAL CDC approach: https://github.com/cpursley/walex?tab=readme-ov-file#publica...
CREATE PUBLICATION news_item FOR TABLE news WHERE (topic IS "AAPL");
-
Elixir Nitpicks
What do you mean testing with processes?
I won't suggest these are the best written tests, but I test various processes, supervisors, etc like this:
https://github.com/cpursley/walex/blob/master/test/walex/sup...
-
PostgreSQL Is Enough
You don’t send the entire WAL, just what you subscribe to - and you can even filter via SQL: https://github.com/cpursley/walex?tab=readme-ov-file#publica...
- A Technical Dive into PostgreSQL's replication mechanisms
-
Fly Postgres, Managed by Supabase
What we do is much if the business logic in Postgres. But then there’s all the other stuff like external integrations, etc.
We handled that by having an Even system built on the Postgres WAL that we use like a callback system.
I put together a little library in Elixir (that originally started out as forked Supabase realtime) for this:
https://github.com/cpursley/walex
Recently added the ability to configure WalEx to forward events to webhooks or EventRelay (so you don’t need to know Elixir).
-
All the ways to capture changes in Postgres
If you're using Elixir, check out https://github.com/cpursley/walex
I've actually been thinking about turning this idea into a product where you can just point it at your postgres database and select the tables you want to listen to (with filters, like you describe). And have that forwarded to a webhook (with possibility of other protocols).
I'd love to hear folks thoughts on that (and if it would be something people would pay for).
-
Show HN: ElectricSQL, Postgres to SQLite active-active sync for local-first apps
Neat, this is the pattern I've been thinking about for a while now. Also glad to see this is Elixir based.
I've been using https://github.com/cpursley/walex (basically a fork of cainophile via a fork for subabase) to listen to Postgres changes in Elixir.
-
How to Listen to Database Changes Using Postgres Triggers in Elixir
https://github.com/cpursley/walex
Which is based on WAL logs and doesnt have the same limitations.
-
PostgreSQL Logical Replication Gotchas
Great writeup, just added this to the WalEx readme:
https://github.com/cpursley/walex
(WalEx is an Elixir lib for listening to the WAL and perform callback-like actions with the data)
-
We used Elixir's Observer to hunt down bottlenecks
Very cool.
I'm using Elixir to listen to change events via https://github.com/cpursley/walex (which I basically ripped off from Supabase).
What are some alternatives?
Multicorn - Data Access Library
PolarDB-for-PostgreSQL - A cloud-native database based on PostgreSQL developed by Alibaba Cloud.
supabase-mailer - Send and track email from Supabase / PostgreSQL using a Transactional Email Provider
neon - Neon: Serverless Postgres. We separated storage and compute to offer autoscaling, branching, and bottomless storage.
pg_net - A PostgreSQL extension that enables asynchronous (non-blocking) HTTP/HTTPS requests with SQL
realtime - Broadcast, Presence, and Postgres Changes via WebSockets
graphile-engine - Monorepo home of graphile-build, graphile-build-pg, graphile-utils, postgraphile-core and graphql-parse-resolve-info. Build a high-performance easily-extensible GraphQL schema by combining plugins!
libcluster - Automatic cluster formation/healing for Elixir applications
amforeas - A RESTful Interface to your database
worker - High performance Node.js/PostgreSQL job queue (also suitable for getting jobs generated by PostgreSQL triggers/functions out into a different work queue)
Hasura - Blazing fast, instant realtime GraphQL APIs on your DB with fine grained access control, also trigger webhooks on database events.
helm-charts - neondatabase helm charts