Codebase-ul urmează o Arhitectură Hexagonală (Porturi și Adaptoare) strictă, cu trei straturi:
• Stratul de Domeniu (src/domain/) - Clase TypeScript pure, fără niciun import de framework. Conține Value Objects (Money, TaxRate, JurisdictionCode), Entități (agregatul Transaction, TaxRule, Commission) și Strategii (interfața ITaxStrategy cu implementări pentru SUA, UE, UK, CA, plus lanțul TaxRulePipeline).
• Stratul de Aplicație (src/application/) - Orchestratori de use case (CalculateTax, CalculateCommission, ProcessBatchTransaction) care construiesc obiecte de domeniu din DTO-uri, verifică cache-ul, rezolvă strategii, rulează pipeline-uri și scriu în logul de audit. Depinde exclusiv de interfețe abstracte de tip port - ICachePort, IQueuePort, IAuditLogPort, ITaxRuleRepository.
• Stratul de Infrastructură (src/infrastructure/) - Adaptoare concrete: PrismaService pentru PostgreSQL, RedisCacheAdapter, adaptor BullMQ pentru cozi și adaptor Prisma pentru logare de audit. Modulul NestJS InfrastructureModule este singura rădăcină de compoziție care conectează adaptoarele la porturi.
• Stratul de Interfață (src/interfaces/rest/) - Controlere NestJS cu decoratori Swagger și DTO-uri. Strat subțire care deleagă către use case-uri.
Design Patterns: Strategy, Factory, Chain of Responsibility, Decorator, Builder, Value Object, Repository, Ports & Adapters.