Skip to main content

Ulmexa Project Architecture

The Ulmexa platform is built with a focus on scalability, automation, and modularity. It leverages modern technologies such as OpenStack, Kubernetes, and microservices to deliver a robust Digital Marketing as a Service (DMaaS) solution.

πŸ”§ Core Infrastructure​

Ulmexa is deployed on a private cloud infrastructure built with:

  • OpenStack: Handles compute, networking, and storage resources.
  • Kubernetes: Orchestrates containerized microservices and ensures high availability.
  • Docker: Containers are used for all microservices (e.g., mailing, user management).
  • Keycloak: Manages user identity and access control.
  • RabbitMQ: Message queuing system for asynchronous processing.
  • Mailcow: Email server used for managing domains and mailboxes.
  • Prometheus + Grafana: For monitoring and alerting.

Architecture Overview

Ulmexa is built using a monolithic 3-tier architecture to deliver a robust and scalable marketing automation platform. The architecture is designed to streamline development and deployment while ensuring maintainability and performance.

πŸ“ Architectural Layers​

1. Presentation Layer (Frontend)​

  • Built with Angular
  • Provides dashboards for:
    • Users (to manage projects, campaigns, clients)
    • Admins (to oversee the platform, subscriptions, invoices)
  • Communicates with the backend via secured RESTful APIs

2. Application Layer (Backend)​

  • Built with Spring Boot
  • Handles:
    • Business logic for campaign creation, scheduling, and reporting
    • Domain and mailbox management
    • Subscription and billing logic
    • Team and client collaboration
  • Integrates with external services:
    • Mailcow (for mail infrastructure)
    • RabbitMQ (for asynchronous email processing)
    • Keycloak (for authentication and role management)
    • OpenStack (for provisioning user-specific infrastructure)

3. Data Layer (Persistence)​

  • Stores persistent data using:
    • PostgreSQL (for application and user data)
    • Prometheus & Grafana (for monitoring metrics)
    • Object storage (for logos, images, campaign assets)

πŸ—ΊοΈ Deployment Environment​

  • Deployed on OpenStack, using a private cloud environment
  • Packaged and orchestrated with Docker and Kubernetes
  • Hosted services include:
    • Internal APIs
    • Database cluster
    • Mail server (Mailcow)
    • Monitoring stack

πŸ–ΌοΈ Architecture Diagram​

Ulmexa SaaS Architecture

πŸ—‚ Data Storage​

  • PostgreSQL: Relational data store for platform services.

πŸ—ΊοΈ System Architecture Diagram​

Ulmexa Architecture

The architecture is designed to support multiple tenants, isolate user workloads, and enable future AI/ML integration.

🌐 Network Flow​

  1. Users access the frontend (Angular) through the reverse proxy (e.g., Nginx).
  2. The frontend communicates with the backend API (Spring Boot).
  3. The backend communicates with infrastructure services and external APIs (Mailcow, Keycloak).
  4. Campaign emails are queued in RabbitMQ and processed by a background worker.
  5. All activity is logged and monitored through Prometheus and Grafana.