Pinned event-mongodb and event v3 transactional handler compatibility
Parent: Change Data Capture Patterns · Published reference · snapshot 2026-11-02
↓ Facts as markdownall context files
Source-anchored research for Pinned event-mongodb and event v3 transactional handler compatibility. Run status: COMPLETED.
These notes link each claim to its source. Some citations identify archived research reports that are no longer hosted on this site. A published reference means the content is available; it does not certify independent review or accuracy.Read the editorial policy and follow the sources before relying on a claim.
Structure and components
- The complete inspected Handle body calls the required transactional-store methods directly. It contains no optional fallback to the ordinary Store interface and no type assertion to MongoSessionProvider. It supplies no checkpoint operation or projection implementation. That selected body and the shown signature comparison do not demonstrate a working store adapter or a combined marker/projection/checkpoint crash-replay protocol. (medium confidence) [source 1] [source 2] [source 3] [source 4]
Problems, failure modes and limitations
- TransactionalStore embeds Store and requires IsDuplicateTx(ctx context.Context, tx any, messageID string) (bool, error) and MarkProcessedTx(ctx context.Context, tx any, messageID string) error. Its transaction-object parameter is part of each required method signature. (low confidence) [source]
- The Handle method of TransactionalHandler computes a key and calls h.txManager.Execute with the outer ctx. Inside its transaction callback it passes that captured ctx and the callback tx to IsDuplicateTx, the user handler and MarkProcessedTx. A duplicate-check error returns before user handling; a duplicate skips user handling and marking; a user-handler error returns before marking. Otherwise the callback returns the marker result. (low confidence) [source]
Facts and statements
- The pinned event-mongodb dependency manifest declares github.com/rbaliyan/event/v3 v3.18.1. The supplied GitHub response requested for that declared release tag returns the upstream commit used by the immutable source bodies in this comparison. (medium confidence) [source 1] [source 2]
- NewTransactionalHandler accepts a handler callback with context.Context, Transaction and data, a Manager, an idempotency.TransactionalStore, and a key function returning string. The constructor stores these arguments directly in the returned TransactionalHandler. (low confidence) [source]
- The shown MongoStore methods IsDuplicateTx and MarkProcessedTx take context and message ID; neither has the transaction-object parameter required by TransactionalStore. Their signatures therefore do not match that interface's required Tx methods. The MongoStore source declares a compile-time assertion for evtidempotency.Store; that assertion supplies no TransactionalStore assertion. (high confidence) [source 1] [source 2]
- In this handler-to-manager path, the Execute method of MongoManager constructs a MongoTransaction containing the driver callback context and passes that wrapper to fn. The Handle method still supplies its captured outer context alongside that transaction object. Transaction exposes Commit and Rollback, while MongoSessionProvider additionally exposes Session and Context. The Context method returns the stored context; passing the outer handler context unchanged does not itself perform that accessor handoff. (high confidence) [source 1] [source 2] [source 3]
- The MongoDB idempotency package describes Tx variants as context-based transactional intent. Its displayed Tx methods forward their supplied context to the same helpers as the ordinary methods. This documented intent does not add the transaction-object parameter required by the upstream TransactionalStore signatures. (medium confidence) [source 1] [source 2] [source 3]
Children
- No children recorded.