Yash/Backend Engineer
Interview / Contact
Back to Blog

Building a Multi-Tenant Insurance CRM: Lessons from Azent360

8 min readYaswanth Reddy Koduru
Multi-TenantSpring BootInsurance TechSaaSArchitecture

Building a Multi-Tenant Insurance CRM: Lessons from Azent360

When I set out to build Azent360 (formerly Coverlyx), the goal was clear: create a centralized CRM and commission platform that insurance agencies could trust. What I didn't expect was how challenging multi-tenancy, commission reconciliation, and compliance would be when combined.

The Problem We Solved

Insurance agencies were drowning in fragmented tools. Client management happened in one system, renewal tracking in another, and commission calculations in spreadsheets. This led to:

  • Missed revenue opportunities from forgotten renewals
  • Commission disputes due to manual tracking
  • Compliance risks from scattered data
  • Frustrated agents spending hours on administrative tasks

Architecture Decisions

Multi-Tenant Design

We implemented tenant-level RBAC (Role-Based Access Control) from day one. Every database query, every API call, and every background job is tenant-aware. This wasn't just about data isolation—it was about ensuring one agency's data never leaked to another.

Key decisions:

  • Separate schemas per tenant for complete isolation
  • Tenant context injected at the Spring Security filter level
  • Audit logging for every cross-tenant operation
  • Tenant-specific feature flags for customization

Event-Driven Workflows

Commission calculations aren't simple. They depend on policy renewals, payment confirmations, carrier adjustments, and more. We used event-driven architecture with Spring Boot to handle this complexity:

  • Renewal events trigger commission calculations
  • Payment events update reconciliation status
  • Carrier notifications adjust commission amounts
  • Payout events generate agency reports

Each event is processed asynchronously, making the system resilient to failures.

Technical Challenges

Challenge 1: Commission Reconciliation

Insurance commissions can take 30-90 days to settle. We built a reconciliation engine that:

  • Tracks expected vs. actual payments
  • Flags discrepancies automatically
  • Maintains audit trails for disputes
  • Supports manual adjustments with approval workflows

Challenge 2: Compliance & Reporting

Insurance is heavily regulated. Every transaction needs to be traceable. We implemented:

  • Immutable audit logs (write-once, read-many)
  • Compliance-ready reporting with JasperReports
  • Role-based data access down to the field level
  • GDPR-compliant data retention policies

Challenge 3: Scalability

Agencies grow. What works for 50 clients doesn't work for 5,000. We designed for scale:

  • PostgreSQL with optimized indexes
  • Redis caching for frequently accessed data
  • Docker containerization for horizontal scaling
  • AWS ECS for auto-scaling during peak periods

Tech Stack

Backend:

  • Java 17 with Spring Boot 3.x
  • Spring Security for authentication
  • Hibernate/JPA for data persistence
  • PostgreSQL for reliable storage

Frontend:

  • React with modern hooks
  • Context API for state management
  • RESTful API integration

Infrastructure:

  • Docker containers
  • AWS ECS for orchestration
  • S3 for document storage
  • CloudWatch for monitoring

Impact & Outcomes

After deploying Azent360 to pilot agencies:

  • 60% reduction in time spent on commission tracking
  • Zero commission disputes in the first quarter
  • 40% improvement in renewal follow-through rates
  • Complete audit trail for compliance reviews

Lessons Learned

  1. Multi-tenancy is hard - Plan it from day one, don't bolt it on later
  2. Event-driven saves lives - Async processing makes complex workflows manageable
  3. Audit everything - In regulated industries, traceability isn't optional
  4. Start simple, scale smart - Don't over-engineer, but design for growth

What's Next

We're building integrations with major insurance carriers for automated data feeds, expanding the product suite to include client communication tools, and exploring AI-assisted renewal predictions.

Building Azent360 taught me that great SaaS products balance technical excellence with deep domain understanding. It's not enough to write clean code—you need to understand the insurance business inside and out.


Have questions about multi-tenant architecture or insurance tech? Let's connect on LinkedIn or schedule a call to discuss.