Conversation
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Review Summary by QodoAdd SQLite event store documentation and references
WalkthroughsDescription• Add comprehensive SQLite event store documentation page • Update event store implementations list to include SQLite • Add SQLite to supported projectors and packages table • Document SQLite checkpoint store configuration Diagramflowchart LR
A["SQLite Event Store"] -->|"New docs page"| B["docs/infra/sqlite/index.md"]
A -->|"Referenced in"| C["Event Store Implementations"]
A -->|"Referenced in"| D["Supported Projectors"]
A -->|"Referenced in"| E["Packages Table"]
A -->|"Referenced in"| F["Checkpoint Store Docs"]
File Changes1. docs/docs/infra/sqlite/index.md
|
Code Review by Qodo
1. StreamName set from string
|
| builder.Services.AddSubscription<SqliteStreamSubscription, SqliteStreamSubscriptionOptions>( | ||
| "StreamSubscription", | ||
| builder => builder | ||
| .Configure(x => x.Stream = "my-stream") | ||
| .AddEventHandler<StreamSubscriptionHandler>() | ||
| ); |
There was a problem hiding this comment.
1. Streamname set from string 🐞 Bug ✓ Correctness
The SQLite stream subscription example assigns a string to SqliteStreamSubscriptionOptions.Stream, but that property is a StreamName and there is no implicit conversion from string. Copy/pasting the snippet will not compile.
Agent Prompt
### Issue description
The docs example for `SqliteStreamSubscriptionOptions` sets `Stream` with a string literal, but the property type is `StreamName` and there is no implicit conversion from `string` to `StreamName`.
### Issue Context
This causes a compile-time error for anyone following the documentation.
### Fix Focus Areas
- docs/docs/infra/sqlite/index.md[85-94]
ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools
| global_position INTEGER PRIMARY KEY AUTOINCREMENT, | ||
| message_id TEXT NOT NULL, | ||
| message_type TEXT NOT NULL, | ||
| stream_id INTEGER NOT NULL REFERENCES streams(stream_id), | ||
| stream_position INTEGER NOT NULL, |
There was a problem hiding this comment.
2. Sqlite fk references wrong table 🐞 Bug ✓ Correctness
The SQLite schema snippet references streams(stream_id) even though Eventuous uses schema-prefixed table names (e.g. eventuous_streams). Users manually creating tables from the snippet would end up with an invalid foreign key reference.
Agent Prompt
### Issue description
The SQLite schema example uses `REFERENCES streams(stream_id)` but the real schema uses `{schema}_streams` (e.g. `eventuous_streams`).
### Issue Context
This can lead users who provision the schema manually to create an invalid FK.
### Fix Focus Areas
- docs/docs/infra/sqlite/index.md[13-31]
ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: fbff75c032
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| builder.Services.AddSubscription<SqliteAllStreamSubscription, SqliteAllStreamSubscriptionOptions>( | ||
| "ImportedBookingsProjections", | ||
| builder => builder | ||
| .UseCheckpointStore<SqliteCheckpointStore>() |
There was a problem hiding this comment.
Avoid unusable checkpoint-store registration in SQLite sample
Using .UseCheckpointStore<SqliteCheckpointStore>() is not valid for the SQLite implementation because UseCheckpointStore<T>() relies on DI to construct T, while SqliteCheckpointStore only exposes constructors that need either raw string parameters or a SqliteCheckpointStoreOptions instance; this causes subscription resolution to fail at startup when readers copy this snippet. The sample should use the already-documented AddSqliteCheckpointStore() default registration or a factory-based UseCheckpointStore(...) that resolves a preconfigured store.
Useful? React with 👍 / 👎.
| builder.Services.AddSubscription<SqliteStreamSubscription, SqliteStreamSubscriptionOptions>( | ||
| "StreamSubscription", | ||
| builder => builder | ||
| .Configure(x => x.Stream = "my-stream") |
There was a problem hiding this comment.
Assign a StreamName value in stream subscription example
This example does not compile as written: SqliteStreamSubscriptionOptions.Stream is a StreamName, and StreamName does not define an implicit conversion from string, so x.Stream = "my-stream" produces a type-mismatch error for users following the docs. The snippet should construct a StreamName explicitly (or use a documented factory) before assignment.
Useful? React with 👍 / 👎.
Summary
docs/infra/sqlite/)Follows up on #502 which added the SQLite event store implementation.
🤖 Generated with Claude Code