Skip to main content

APEX Capabilities Overview

This section maps APEX business capabilities to their technical implementations in the Platform codebase. Each capability represents a complete business function validated against the actual codebase implementation.

What are APEX Capabilities?

APEX Capabilities are business-focused features that provide complete functionality for specific domains. Each capability includes:

  • Business Purpose: Clear value proposition and use cases
  • Technical Implementation: Validated code components, services, and infrastructure
  • Configuration: Setup and customization options
  • Integration Points: How it connects with other capabilities

Core Capabilities

Billing Capability

  • Business Purpose: Automate invoice creation, payment collection, and financial reporting with customizable billing workflows
  • Technical Implementation: APEX Billing Service (services/Billing/) - Note: Consolidating Transaction Management functionality
  • Key Components: BillRunService, BillingDataContext, Payment Processing, Transaction Migration, Transaction Management (migrating from deprecated module)
  • Features: Invoice generation, payment processing, billing cycles, financial reporting, transaction lifecycle management
  • Official Documentation: Billing Capability

Customer Onboarding & SSO

  • Business Purpose: Secure customer registration and single sign-on authentication with configurable workflows
  • Technical Implementation: Onboarding service libraries (libs/Onboarding/), OnboardingActor, Azure AD B2C integration
  • Key Components: OnboardingService, OnboardingActor, OnboardingWebhook, schema validation
  • Features: Multi-step registration, configurable workflows, Azure AD B2C authentication, webhook integration
  • Official Documentation: Onboarding Capability

Notifications

  • Business Purpose: Multi-channel message delivery (email, SMS, WhatsApp, in-app) for user engagement
  • Technical Implementation: Notifications.API service (services/Notifications/)
  • Key Components: NotificationsController, EmailNotificationController, WhatsAppController, BulkSmsController, UINotificationController
  • Features: Email (SendGrid), SMS, WhatsApp, dashboard cards, popup notifications, rate limiting
  • Official Documentation: Notifications Capability

Product Management

Product catalog, data quality, and embedding.

  • Business Purpose: Deliver digital products and services across multiple applications with minimal overhead
  • Technical Implementation: ProductManagement.Durable.Isolated (services/ProductManagement/)
  • Key Components: ProductFlowWorkflow, Azure Durable Functions, secure product flows
  • Features: Product delivery orchestration, secure data flow, multi-application support
  • Official Documentation: Products Capability

Utility Capabilities

Website Builder (UniversalTenant)

  • Business Purpose: Create and customize branded websites quickly with minimal configuration
  • Technical Implementation: Angular 14 PWA application in Azure DevOps UniversalTenant repository
  • Repository: Azure DevOps Platform/UniversalTenant (f2b8e706-f01a-41db-92f5-85efe6901d0d)
  • Key Components: Angular 14 frontend, PWA support, Bootstrap 5 styling, JWT authentication
  • Features: Custom branding, tenant configuration, custom domains via Azure Front Door, responsive design
  • Migration Status: Will be migrated to this repository in the future
  • Official Documentation: Website Builder Capability

Styling & Customization

  • Business Purpose: Customize tenant appearance and branding with CSS variables and themes
  • Technical Implementation: Tenant CSS endpoint (/static/styles/tenant.css), TenantService.GetTenantCssAsync
  • Key Components: Tenant-specific CSS loading, StyleSheet properties, CSS caching
  • Features: Custom branding, tenant-specific styling, CSS variable overrides
  • Official Documentation: Styling Guide

Integration Architecture

Azure Services Integration

  • Durable Functions: ProductManagement.Durable.Isolated for stateful workflows
  • Service Bus: Azure.Messaging.ServiceBus for reliable messaging (Verifiers, day-end events)
  • Container Apps: Microservice hosting and auto-scaling
  • Storage: File management and data persistence

Dapr Integration

  • Service Invocation: Inter-service communication patterns
  • Virtual Actors: ⚠️ Previously TransactionManagement.Dapr.Actors (being migrated to Billing module)
  • Pub/Sub Messaging: Event-driven architecture with Dapr.Events
  • State Management: Distributed state across microservices

Data Management

  • Entity Framework: BillingDataContext and other data contexts
  • Caching: Distributed caching with tenant-specific data
  • Migration Workers: ⚠️ TransactionManagement migration and data transformation (being consolidated into Billing module)

Getting Started with Capabilities

  1. Identify Business Needs: Review capability catalog to match business requirements
  2. Review Technical Implementation: Study the technical documentation for chosen capabilities
  3. Configure Integration: Set up necessary Azure services and configurations
  4. Customize Appearance: Apply tenant-specific styling and branding
  5. Test Complete Workflows: Validate end-to-end functionality

Contributing

When adding new capabilities or updating existing ones:

  1. Update this overview with business purpose and technical implementation
  2. Add cross-references to official documentation
  3. Include integration patterns and configuration examples
  4. Update the main llms.txt file with new capability references
  5. Validate all technical details against actual codebase implementation