Files
CurrenciCombo/docs/ADRs/ADR-001-Architecture-Decisions.md
defiQUG f52313e7c6 Enhance ComboHandler and orchestrator functionality with access control and error handling improvements
- Added AccessControl to ComboHandler for role-based access management.
- Implemented gas estimation for plan execution and improved gas limit checks.
- Updated execution and preparation methods to enforce step count limits and role restrictions.
- Enhanced error handling in orchestrator API endpoints with AppError for better validation feedback.
- Integrated request timeout middleware for improved request management.
- Updated Swagger documentation to reflect new API structure and parameters.
2025-11-05 17:55:48 -08:00

1.3 KiB

ADR-001: Architecture Decisions

Status

Accepted

Context

ISO-20022 Combo Flow system requires decisions on architecture patterns, technology choices, and design principles.

Decisions

1. Two-Phase Commit (2PC) Pattern

Decision: Use 2PC for atomic execution across DLT and banking rails.

Rationale:

  • Ensures atomicity across heterogeneous systems
  • Provides rollback capability
  • Industry standard for distributed transactions

2. PostgreSQL for Persistence

Decision: Use PostgreSQL as primary database.

Rationale:

  • ACID compliance required for financial transactions
  • JSONB support for flexible plan storage
  • Strong ecosystem and tooling

3. Redis for Caching

Decision: Use Redis for caching and session management.

Rationale:

  • High performance
  • Pub/sub support for real-time updates
  • Widely supported

4. Smart Contract Architecture

Decision: Separate handler, registry, and adapter contracts.

Rationale:

  • Modularity and upgradeability
  • Security isolation
  • Easier testing and auditing

5. Next.js for Frontend

Decision: Use Next.js 14 with App Router.

Rationale:

  • Server-side rendering for performance
  • Built-in API routes
  • Excellent developer experience

Date: 2025-01-15
Author: Engineering Team