📄️ 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.