The NAF uses a modular architecture where functionality is separated into distinct projects. This approach breaks down the monolithic NAF codebase into smaller, independent components for easier maintenance and faster deployments.
Architecture Overview
Core NAF: Main conversational agent framework
Separated Projects:
Outbound: Outbound calling functionality
Lead nurture: Automatic outreach to users
Additional projects as needed for specific features
Why Modules and Projects Were Implemented
The Problem: Monolithic Architecture
Bug fixes require deploying entire NAF framework
Long deployment times
Changes to one feature risk affecting unrelated functionality
Difficult to maintain large, interconnected codebase
The Solution: Modular Projects
Isolate functionality into independent projects
Deploy only affected components
Fix bugs without touching core NAF
Faster iteration and development cycles
Key Benefits
1. Easier Maintenance
Changes isolated to specific modules
Smaller, more manageable codebases
Easier to understand and modify individual components
Reduced risk of unintended side effects
2. Faster Deployments
Before modularization:
Find bug → Fix in NAF → Deploy entire NAF → Long deployment time
After modularization:
Find bug in Outbound → Fix in Outbound project → Deploy only Outbound → Faster deployment
3. No Impact on Unrelated Functionality
Deploying Outbound changes, for example, does not affect core NAF
Other modules continue running without interruption
Reduced deployment risk
