Conversation
…cyStore, and DLQStore Co-authored-by: intel352 <77607+intel352@users.noreply.github.com>
Co-authored-by: intel352 <77607+intel352@users.noreply.github.com>
…cyStore, and DLQStore Co-authored-by: intel352 <77607+intel352@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Adds PostgreSQL-backed implementations for four core store/ subsystems (EventStore, APIKeyStore, IdempotencyStore, DLQStore) so PostgreSQL-first deployments aren’t forced to depend on SQLite for these operational stores.
Changes:
- Introduces
PGEventStore,PGAPIKeyStore,PGIdempotencyStore, andPGDLQStoreusing*pgxpool.Pooland PostgreSQL-native types (UUID, JSONB, TIMESTAMPTZ). - Creates required tables/indexes on construction via
CREATE TABLE IF NOT EXISTS. - Updates
go.modto makegithub.com/xdg-go/scrama direct dependency.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| store/pg_event_store.go | New Postgres event store implementation (append-only execution event log). |
| store/pg_api_keys.go | New Postgres API key store implementation (CRUD + validation). |
| store/pg_idempotency.go | New Postgres idempotency key store implementation (check/store/cleanup). |
| store/pg_dlq.go | New Postgres DLQ store implementation (entry lifecycle + filtering). |
| go.mod | Promotes xdg-go/scram to a direct dependency. |
|
@copilot apply changes based on the comments in this thread |
…ntegration tests Co-authored-by: intel352 <77607+intel352@users.noreply.github.com>
|
@copilot address this issue. #216 (comment) |
Co-authored-by: intel352 <77607+intel352@users.noreply.github.com>
Fixed in 7eabfa3 — removed the dead |
|
@copilot apply changes based on the comments in this thread |
…hed ones Co-authored-by: intel352 <77607+intel352@users.noreply.github.com>
Applied in 359e6fb — the idempotency subtest cleanup now uses |
store/pg_event_store.go- PostgreSQL EventStore using pgxpoolstore/pg_api_keys.go- PostgreSQL APIKeyStore using pgxpoolstore/pg_idempotency.go- PostgreSQL IdempotencyStore using pgxpoolstore/pg_dlq.go- PostgreSQL DLQStore using pgxpoolbuildPGDLQQuery: remove deadidx++after ErrorTypePGEventStore.Appendconcurrency: usepg_advisory_xact_lockkeyed on execution UUID to serialize per-execution appendsstore/pg_stores_test.go: integration tests for all four PG stores, gated byPG_URLDELETE WHERE key LIKE $1withDELETE FROM idempotency_keysso fixed keys used byrunIdempotencyTests("order-123-step-validate","expired-key","dup-key", etc.) are properly cleaned up between runsOriginal prompt
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.