- 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.
1.3 KiB
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