Skip to Content
Engineering11 Documentation πŸ”₯
BackendOverview

Backend β€” Engineering11 Full-Stack Foundation

This is a documentation-centric backend reference demonstrating the structure and capabilities of the Engineering11 Full-Stack Foundation.

It illustrates a typical backend layout composed of both:

  • Engineering11-provided platform microservices, each with documentation describing its purpose and capabilities, and
  • Customer-built microservices, implemented using the Foundation’s design patterns and service structure.

This reference provides a concrete example of how provided services and your product-specific services coexist within a single system.


Repository Structure

Backend systems built on the Foundation are organized as a unified monorepo where platform and custom services live side by side:

β”œβ”€β”€ engineering11-available-server-apis/ # Documentation of installable E11 server API packages β”œβ”€β”€ microservices/ # All backend microservices (platform + custom) β”‚ β”œβ”€β”€ service-user/ # Engineering11 platform microservice β”‚ β”œβ”€β”€ service-auth/ # Engineering11 platform microservice β”‚ β”œβ”€β”€ service-messaging/ # Engineering11 platform microservice β”‚ β”œβ”€β”€ service-notifications/ # Engineering11 platform microservice β”‚ β”œβ”€β”€ service-files/ # Engineering11 platform microservice β”‚ β”œβ”€β”€ service-customer/ # Engineering11 platform microservice β”‚ └── ... # Additional platform and customer services

All backend microservices β€” whether provided by the Foundation or built by the customer β€” live in the same root directory (microservices) and follow the same structural and operational conventions. This reflects how real Foundation-based systems are organized.


Typical Backend Structure for a Foundation-Based System

Foundation-provided microservices and customer-built services live side by side, supported by shared libraries, operational tooling, and standardized workflows.

backend-repo/ β”œβ”€ microservices/ # All E11 provided and custom backend services β”‚ # Each service follows shared E11 patterns β”œβ”€ packages/ β”‚ └─ shared/ # Shared server-side libraries used across services β”œβ”€ static/ # Static assets package for defining permissions, products, notifications and more β”œβ”€ rules/ # Data access and security rules with tests β”œβ”€ ops/ # Operational tooling (bin, env helpers, platform scripts, playbooks) β”œβ”€ queues/ # Async task / background job queue definitions β”œβ”€ env/ β”‚ └─ README.md # Environment setup and configuration notes β”œβ”€ cloudbuild.yaml # CI build entrypoint β”œβ”€ deploy-*.sh # Deployment scripts β”œβ”€ docker-compose*.yaml # Local development orchestration β”œβ”€ firebase.json # Platform configuration (If Firestore is used) β”œβ”€ firestore.* # Data store configuration and rules (If Firestore is used) β”œβ”€ nx.json # Task runner configuration with caching β”œβ”€ package.json # Yarn workspace root β”œβ”€ yarn.lock # Workspace lockfile (services, packages, rules, static) └─ release-please-config.json # Multi-package versioning and release automation

This structure mirrors how real Foundation-based systems are built and operated: a single, cohesive backend workspace where Foundation-provided services and your product-specific services evolve together using the same tooling, patterns, and operational conventions.

Modern Development Tooling

Engineering11 systems use modern tooling to improve the developer experience:

Monorepo Management:

  • Yarn workspaces for dependency management
  • Nx for build orchestration and caching
  • Release Please for automated versioning and changelogs

Quality & Testing:

  • Jest for unit and integration tests
  • Supertest for API testing
  • gts (Google TypeScript Style) for linting and formatting
  • Husky + lint-staged for pre-commit hooks
  • Commitlint for conventional commits

Development Environment:

  • Docker for containerization
  • Docker Compose for local orchestration
  • Hot reload for rapid iteration

Engineering11 Server API Packages

The engineering11-available-server-apis/ folder catalogs the Foundation’s published server API packages that are used throughout the codebase and can be installed by customers.

These packages provide:

  • Shared domain models
  • Repository patterns for data access
  • Business logic and validation
  • Type-safe interfaces for service integration

Explore Server API Packages β†’


Backend Architecture

Foundation backends are cloud-native, event-driven, and designed for scale:

  • Containerized microservices β€” independently deployable REST APIs and workers
  • Event-driven workflows β€” async processing via pub/sub messaging
  • Repository-pattern data access β€” consistent interfaces across storage providers
  • Multi-tenant by default β€” data partitioning and isolation built into every layer
  • Centralized observability β€” structured logging, monitoring, and tracing

Services follow consistent patterns to reduce cognitive load and operational complexity.

Read Backend Architecture Details β†’


Microservice Anatomy

Foundation microservices follow a consistent, finite set of structured parts. Each service includes only the components it needs for its domain, but those components always follow the same patterns and conventions:

  • Server APIs β€” published service packages that other backend services can install to access shared models, domain logic, and repository-based data access through stable, versioned interfaces.
  • IPC REST APIs β€” authenticated, service-to-service REST endpoints used for internal communication and inter-process coordination between backend services.
  • REST APIs β€” externally exposed, client-facing endpoints consumed by frontend applications and integrated third-party systems.
  • Background jobs β€” asynchronous and long-running processes executed outside of request/response flows.
  • Task handlers β€” discrete asynchronous handlers responsible for processing queued tasks and workflow steps.
  • Shared full-stack libraries β€” reusable models, utilities, and primitives shared across backend services and frontend applications to ensure consistency.
  • Migrations β€” controlled change sets used to evolve databases and related system state in a predictable and repeatable way.

This structure makes services predictable to work in, review, and operate over time.

See Microservice Implementation Guide β†’


Available Platform Microservices

The Foundation provides 20+ production-ready microservices covering core platform domains:

Identity & Access

Customer & Organization

Product & Monetization

Communication

Content & Files

Data & Integration

Operations

Browse All Microservices β†’


What You Build On Top

The Foundation provides the design patterns and building blocks β€” your team uses them to build the features that differentiate your product.

With the platform in place, your team owns and implements:

  • Product-specific business logic and domain workflows
  • Custom API endpoints, contracts, and data models
  • Event consumers and producers tailored to your use cases
  • AI services, enrichment pipelines, and decision logic
  • Integration logic with external systems and partners

The Foundation accelerates development by standardizing infrastructure and patterns, without hiding the architecture β€” your engineers retain full visibility, control, and ownership of the system.


Operational Philosophy

The backend should be boring to operate.

Predictable deployments, strong observability, and safe scaling mean your team spends time building features β€” not firefighting infrastructure.


Next Steps

Last updated on