GitHub has standard privacy controls and policies protecting user data and discussion content from unauthorized access.
Terms of Service
+0.05
Article 1 Article 2
GitHub ToS establish baseline equal treatment of users without discrimination, though enforcement depends on implementation.
Accessibility
+0.15
Article 25 Article 26
Observable accessibility features including keyboard navigation, ARIA support, and responsive design promote equitable access to platform functionality.
Mission
—
GitHub's public mission emphasizes open collaboration and global access to development tools, indirectly supporting knowledge-sharing rights.
Editorial Code
+0.08
Article 19 Article 27
GitHub community guidelines establish standards for respectful discussion and protect user expression within community contexts.
Ownership
-0.05
Article 17
GitHub retains platform control; user-generated content ownership is subject to platform terms, creating conditional rather than absolute intellectual property rights.
Access Model
+0.12
Article 19 Article 27
Public discussion board model enables open participation and knowledge dissemination without gatekeeping, supporting freedom of expression and information access.
Ad/Tracking
-0.08
Article 12
GitHub's feature flags and analytics tracking create potential privacy concerns; behavioral data collection may infringe on privacy of thought.
Happy pgdog user here, I can recommend it from a user perspective as a connection pooler to anyone checking this out (we're also running tests and positive about sharding, but haven't run it in prod yet, so I can't 100% vouch for it on that, but that's where we're headed.)
@Lev, how is the 2pc coming along? I think it was pretty new when I last checked, and I haven't looked into it much since then. Is it feeling pretty solid now?
> If you build apps with a lot of traffic, you know the first thing to break is the database.
Just out of curiosity, what kinds of high-traffic apps have been most interested in using PgDog? I see you guys have Coinbase and Ramp logos on your homepage -- seems like fintech is a fit?
Congrats guys! Curious how the read write splitting is reliable in practice due to replication lag. Do you need to run the underlying cluster with synchronous replication?
Great progress, guys! It’s impressive to see all the enhancements - more types, more aggregate functions, cross-node DML, resharding, and reliability-focused connection pooling and more. Very cool! These were really hard problems and took multiple years to build at Citus. Kudos to the shipping velocity.
Some HTTP proxies can do retries -- if a connection to one backend fails, it is retried on a different backend. Can PgDog (or PgBouncer, or any other tool) do something similar -- if there's a "database server shutting down" error or a connection reset, retry it on another backend?
I see the word 'replication' mentioned quite a few times. Is this managed by pgdog? Would I be able to replace other logical replication setups with pgdog to create a High Availability cluster?
(apologies for new account - NDA applies to the specifics)
Nice surprise to see this here today. I was working on a deployment just last week.
Unfortunately for me, I found that it crashed when doing a very specific bulk load (COPY FORMAT BINARY with array columns inside a transaction). The process loads around 200MB of array columns (in the region of 10K rows) into a variety of tables. Very early in the COPY process PgDog crashes with :
"pgdog router error: failed to fill whole buffer"
So it appears something is not quite right for my specific use case (COPY with array columns). I'm not familiar enough with Rust but the failed to fill whole buffer seemed to come from Rust (rather than PgDog) based on what little I could find with searches.
I was very disappointed as it looked much simpler to get set up and running that PgPool-II (which I have had to revert to as my backup plan - I'm finding it more difficult to configured, but it does cope with the COPY command without issues).
How do you know when/if it's justified to add additional complexity like PgDog?
Is there a number of simultaneous connection / req per sec that's a good threshold?
Is it easy on my postgres instance to get the number of simulataneous connections, for instance if I simulate traffic, to know if I would gain anything from a connection pooler?
1) Is it possible to start off with plain Postgres and add pgdog without scheduled downtime down the road when scaling via sharding becomes necessary?
2) How are schema updates handled when using physical multi-tenancy? Does pgdog just loop over all the databases that it knows about and issues the update schema command to each?
Congrats on the progress!
What is the behavior of PgDoc if it receives some sort of query it can't currently handle properly? Is there a linter/static analysis tool I can use to evaluate if my query will work?
Can you elaborate a bit more on the challenges faced in making Postgres shard-able?
I remember that adding sharing to Postgres natively was an uphill battle. There were a few companies who has proprietary solutions for it. What you've been able to achieve is nothing less than a miracle.
How would this product compare to a PostgREST based approach (this is the cool tech behind the original supabase) with load balancing at the HTTP level?
As someone who has worked on many-TB-sized "custom" sharded systems with 30-150 shards at multiple (ok, 2) employers, a key challenge to the overall sharding landscape is unsharding all the data back at the analytics layer.
This at a minimum often involved adding back a shard key to the physical data, or partitioning, and/or physical data sorting easily in the "OLAP" layer. And a surprising number of CDC and ETL toolkits don't make it easy to parameterize a single code/configuration base, nor handle situations like shards being down at different times for maintenance or fetching data from each shard at a time of day specified by its end-of-day or handling retransmissions or reconciliation or gaps or data quality of a single shard when back in an unsharded landscape. SQL UNION ALL to reunite shards works, until it doesn't.
YMMV but would be curious if you have a story/solution/thoughts along these lines. It's easier if you shard with unified analytics/reporting in mind on day one of a sharded system design, but in the worlds I've lived in, nobody ever does. But maybe you could.
I've been watching PgDog for a while now. Great progress!
Score Breakdown
+0.25
PreamblePreamble
Medium P: Public repository infrastructure enables collaborative, equal access to development tools
Editorial
ND
Structural
+0.25
SETL
ND
Combined
ND
Context Modifier
ND
Repository page demonstrates public collaborative platform supporting human dignity through knowledge access. No editorial content present. Structural signals show open platform enabling participation.
+0.25
Article 1Freedom, Equality, Brotherhood
Medium P: Public repository accessible to all users without account-based discrimination
Editorial
ND
Structural
+0.20
SETL
ND
Combined
ND
Context Modifier
ND
Public GitHub repository model treats all users equally in terms of read access. ToS modifier applies.
+0.25
Article 2Non-Discrimination
Medium P: No observable discrimination in repository access or contribution policies
Editorial
ND
Structural
+0.20
SETL
ND
Combined
ND
Context Modifier
ND
Platform provides equal access regardless of background. ToS baseline equal treatment modifier applied.
ND
Article 3Life, Liberty, Security
No observable content addressing right to life, liberty or security.
ND
Article 4No Slavery
No observable content addressing slavery or servitude.
ND
Article 5No Torture
No observable content addressing torture or cruel treatment.
ND
Article 6Legal Personhood
No observable content addressing right to recognition as person before law.
ND
Article 7Equality Before Law
No observable content addressing equal protection under law.
ND
Article 8Right to Remedy
No observable content addressing effective remedy for rights violations.
ND
Article 9No Arbitrary Detention
No observable content addressing arbitrary arrest or detention.
ND
Article 10Fair Hearing
No observable content addressing fair trial or public hearing.
ND
Article 11Presumption of Innocence
No observable content addressing criminal procedure rights.
+0.07
Article 12Privacy
Low P: Privacy controls available through GitHub infrastructure
Editorial
ND
Structural
+0.05
SETL
ND
Combined
ND
Context Modifier
ND
Repository page contains analytics and tracking via feature flags. Privacy controls available but collection practices present. Privacy and ad_tracking modifiers apply (net +0.02).
ND
Article 13Freedom of Movement
No observable content addressing freedom of movement.
ND
Article 14Asylum
No observable content addressing asylum or nationality.
ND
Article 15Nationality
No observable content addressing nationality or national community membership.
ND
Article 16Marriage & Family
No observable content addressing marriage or family rights.
+0.10
Article 17Property
Medium P: Open source code sharing enables collective ownership and attribution
Editorial
ND
Structural
+0.15
SETL
ND
Combined
ND
Context Modifier
ND
Repository enables open-source contributions and licensing. However, GitHub platform retains control over hosting and user data, limiting absolute ownership rights. Ownership modifier applied.
ND
Article 18Freedom of Thought
No observable content addressing freedom of thought or conscience.
+0.53
Article 19Freedom of Expression
High A: Public repository enables free expression and information sharing P: Open discussion model without editorial gatekeeping F: Software project presented as collaborative knowledge artifact
Editorial
+0.30
Structural
+0.35
SETL
-0.13
Combined
ND
Context Modifier
ND
Repository page enables public speech through issues, discussions, and code sharing. Feature flags indicate community discussion tools. Editorial code and access_model modifiers both apply (+0.20 combined, capped at +0.20).
+0.20
Article 20Assembly & Association
Medium P: Open-source community enables peaceful assembly through collaborative projects
Editorial
ND
Structural
+0.20
SETL
ND
Combined
ND
Context Modifier
ND
Repository structure supports collaborative community assembly without coercion. No editorial content present.
ND
Article 21Political Participation
No observable content addressing democratic participation or public office.
+0.15
Article 22Social Security
Medium P: Open-source contribution model enables social and cultural participation
Editorial
ND
Structural
+0.15
SETL
ND
Combined
ND
Context Modifier
ND
Repository enables participation in technical community and social cultural exchange through open collaboration.
ND
Article 23Work & Equal Pay
No observable content addressing labor rights or employment.
ND
Article 24Rest & Leisure
No observable content addressing rest, leisure or holidays.
+0.40
Article 25Standard of Living
Medium P: Open-source software accessible to all, supporting technical access to services
Editorial
ND
Structural
+0.25
SETL
ND
Combined
ND
Context Modifier
ND
Public repository with no account paywall enables access to development tools and knowledge. Accessibility modifier applies.
+0.35
Article 26Education
Medium P: Open-source education through documented code and collaborative learning
Editorial
ND
Structural
+0.20
SETL
ND
Combined
ND
Context Modifier
ND
Repository provides free access to technical knowledge and skill development. Accessibility modifier applies.
+0.47
Article 27Cultural Participation
High A: Open-source software shared as public benefit P: Copyright attribution preserved through open-source licensing model F: Collaborative authorship enables shared intellectual property
Editorial
+0.25
Structural
+0.30
SETL
-0.12
Combined
ND
Context Modifier
ND
Repository demonstrates open-source intellectual property model enabling shared authorship and creative participation. Editorial code and access_model modifiers both apply (+0.20 combined, capped at +0.20).
+0.10
Article 28Social & International Order
Low P: Open-source contribution enables participation in social order
Editorial
ND
Structural
+0.10
SETL
ND
Combined
ND
Context Modifier
ND
Repository enables participation in technical social order through collaborative contribution.
ND
Article 29Duties to Community
No observable content addressing limitations on rights or community duties.
ND
Article 30No Destruction of Rights
No observable content addressing interpretation or supremacy of rights.