Skip to content

Add measured PostgreSQL/Hasura and Doublets GraphQL comparison - #41

Open
AIVensk wants to merge 2 commits into
linksplatform:mainfrom
AIVensk:bounty/1-graphql-comparison
Open

AIVensk wants to merge 2 commits into
linksplatform:mainfrom
AIVensk:bounty/1-graphql-comparison

Conversation

@AIVensk

@AIVensk AIVensk commented Sep 28, 2026

Copy link
Copy Markdown

Summary

Closes #1.

Adds a reproducible GraphQL comparison of PostgreSQL + Hasura and the actual Doublets C# GraphQL server, using direct k6 as suggested in the issue.

  • Uses the real common GraphQL operations and JSON Content-Type headers; errors abort with request/response diagnostics.
  • Seeds equivalent data and validates exact rows/cardinality through create, update, five read patterns and delete.
  • Runs pinned images and unmodified pinned Doublets source in disposable, private Docker services; records source/image/workload provenance.
  • Produces complete-run-only comparison tables and includes clearly labelled measured samples.
  • Adds a real-server smoke workflow and optional bounded full run, with no hosted k6 account required.

Verification

  • Two full real-server runs passed: 3,000 background point links; 1,000 iterations per server; 1,000 samples for each of eight operations.
  • Independent smoke rerun passed against both servers: 30 background links, three iterations.
  • Seven report-validation tests passed, independently rerun.
  • Shell/Python syntax and git diff --check pass. Dedicated containers, networks and volumes were cleaned up.

See graphql/README.md for reproducible commands and graphql/sample-results/ for the measured results and provenance. Numbers are HTTP durations from one host and a sequential single-client workload; they are not general storage-engine performance claims. Create uses two HTTP requests on both backends.

Prerequisite handling

The direct k6 path addresses the JSON-header/request-diagnostic problems discussed in hasura/graphql-bench#52 and is verified against both real servers. This PR does not claim to modify or close that separate upstream issue.

Submitting for the advertised 600 RUB reward, subject to maintainer acceptance. Implementation and verification were prepared with Codex assistance.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement first version of the comparison via GQL

1 participant