-
-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Labels
hacktoberfestHacktoberfest issuesHacktoberfest issues
Description
Context
Currently, TransactionManagerAdapter delegates blindly to the platform TransactionManager. When a transactional block returns Either.Left (indicating an error), the transaction is not automatically rolled back.
Problem
This can lead to partial commits when operations fail, violating transactional consistency.
Suggested Solution
- Update
TransactionManagerAdapterto mark transactions for rollback when the block returnsEither.Left:
override suspend fun <E, T> inTransaction(block: suspend () -> Either<E, T>): Either<E, T> =
platformTransactionManager.inTransaction {
val result = block()
if (result.isLeft()) markForRollback()
result
}-
Add a Konsist test to ensure all TransactionManager implementations follow this pattern
-
Add integration tests to verify rollback behavior
Benefits
- Ensures transactional consistency
- Prevents partial commits on errors
- Makes error handling more predictable
Related
- PR feat: implement Context View functionality for filtered scope management #165 (Context View feature)
- TransactionManagementTest.kt
- Suggested by AI review
Metadata
Metadata
Assignees
Labels
hacktoberfestHacktoberfest issuesHacktoberfest issues