ποΈ Architecture Overview
Ever Gauzy is built as a modern, full-stack TypeScript monorepo using enterprise-grade frameworks. This document provides a high-level view of the platform's architecture.
ποΈ Monorepo Structure
Ever Gauzy uses an NX-managed monorepo with Lerna for package management. The repository contains multiple applications, libraries, and plugins organized in a structured hierarchy.
ποΈ Technology Stack
A complete reference of all technologies, frameworks, and tools used in the Ever Gauzy Platform.
ποΈ Backend Architecture
The Ever Gauzy backend is built on NestJS, a progressive Node.js framework for building efficient, scalable server-side applications using TypeScript.
ποΈ Frontend Architecture
The Ever Gauzy frontend is built with Angular (v19+) using the Nebular UI component library and ngx-admin dashboard template.
ποΈ Worker Architecture
The Worker is a standalone, headless NestJS application that runs background tasks, scheduled jobs, and queue-based processing independently of the main API server. It shares the same database, plugin ecosystem, and core packages as the API but is designed to run as a separate process β with no HTTP server and no inbound API traffic.
ποΈ Multi-ORM Architecture
Ever Gauzy uniquely supports multiple ORMs simultaneously β TypeORM, MikroORM, and Knex β allowing developers to choose the best tool for each use case while sharing the same entity definitions and database.
ποΈ Plugins & Integrations System
Ever Gauzy uses a modular plugins & integrations architecture that allows extending the platform with new features, integrations, entities, and UI components without modifying the core codebase.
ποΈ Event Bus
Ever Gauzy uses NestJS CQRS events for inter-module communication, enabling decoupled, event-driven architecture across the platform.
ποΈ File Storage
File storage architecture supporting multiple providers for screenshots, documents, and assets.
ποΈ Multi-Tenancy
Ever Gauzy is built as a multi-tenant platform where every piece of data is scoped to a specific tenant. This ensures complete data isolation between different organizations using the platform.
ποΈ Design Principles
The Ever Gauzy platform is built on five core design principles that guide all architectural and implementation decisions.
ποΈ Microservices & Applications
Overview of all applications in the Ever Gauzy monorepo and their roles.
ποΈ Request Lifecycle
Understand how an HTTP request flows through the Ever Gauzy API from entry to response.
ποΈ Guard & Interceptor Chain
Detailed reference for all guards, interceptors, and decorators used in the API.
ποΈ Database Migration Guide
Create, run, and manage database migrations for schema changes.
ποΈ Entity Inheritance Hierarchy
Understanding the base class hierarchy for all database entities.
ποΈ Seed Data Architecture
How Gauzy seeds initial data for demo, testing, and production environments.
ποΈ WebSocket & Real-Time Architecture
Real-time communication using Socket.IO for live updates and notifications.
ποΈ Configuration System
How Gauzy manages environment-based configuration across all modules.
ποΈ Error Handling Architecture
Standardized error handling patterns across the API layer.
ποΈ Decorator System Reference
Custom TypeScript decorators used throughout the Ever Gauzy codebase.
ποΈ Background Job Architecture
Worker processes, job queues, and scheduled tasks.
ποΈ Module Dependency Graph
Understanding the module dependency tree and key architectural layers.
ποΈ Multi-Tenant Data Flow
How requests are scoped to tenants throughout the stack.
ποΈ Audit Logging Architecture
How entity changes are tracked for compliance and traceability.
ποΈ WebSocket Architecture
Real-time communication using WebSockets.
ποΈ Guard System Deep Dive
NestJS guards used for authentication, authorization, and tenant isolation.
ποΈ Interceptor Patterns
Cross-cutting concerns handled through NestJS interceptors.
ποΈ CQRS Pattern
Command Query Responsibility Segregation in Gauzy.
ποΈ GraphQL API Overview
Using the Gauzy GraphQL API alongside the REST API.
ποΈ Redis Caching Architecture
Caching strategy using Redis for performance optimization.
ποΈ Service Layer Patterns
Architecture and patterns for the Gauzy service layer.
ποΈ Repository Pattern
Data access layer architecture in Gauzy.
ποΈ DTO Design Patterns
Data Transfer Object patterns for validation and transformation.
ποΈ Middleware Patterns
NestJS middleware used for request processing.
ποΈ Scheduler Architecture
Background task scheduling infrastructure.
ποΈ Notification Architecture
How notifications flow through the Gauzy system.
ποΈ Pipe Validation Deep Dive
Input validation and transformation using NestJS pipes.