Skip to content

feat: implement database transaction management for critical operations#525

Merged
Qoder-Undefined merged 1 commit into
MERIDIAN-CITY:mainfrom
RUKAYAT-CODER:feat/db-transaction-management
Jun 29, 2026
Merged

feat: implement database transaction management for critical operations#525
Qoder-Undefined merged 1 commit into
MERIDIAN-CITY:mainfrom
RUKAYAT-CODER:feat/db-transaction-management

Conversation

@RUKAYAT-CODER

Copy link
Copy Markdown
Contributor

Summary

Implements explicit database transaction management for critical multi-write operations in the meridian-api, addressing the risk of partially persisted data when one write succeeds and a subsequent one fails.

Changes

  • src/common/providers/database-transaction.provider.ts — New reusable DatabaseTransactionProvider service wrapping any callback in a QueryRunner transaction: connects, begins, commits on success, rolls back + logs on failure, and always releases the runner.

  • src/post/provider/post.service.tscreatePost and UpdatePost now execute inside explicit QueryRunner transactions. The post row, cascaded MetaOption save, and tag join-table writes are applied atomically; any failure triggers a full rollback.

  • src/common/providers/database-transaction.provider.spec.ts — Unit tests covering commit on success and rollback-on-error for the new provider.

  • src/post/provider/post.service.spec.ts — Updated tests covering both happy-path transaction commits and rollback scenarios for createPost and UpdatePost.

closes #524

@Qoder-Undefined Qoder-Undefined left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@Qoder-Undefined Qoder-Undefined merged commit 8d2178a into MERIDIAN-CITY:main Jun 29, 2026
1 check passed
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 Database Transaction Management for Critical Operations in the meridian-api folder

2 participants