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 servicesAll 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 automationThis 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
- service-auth - Authentication and session management
- service-user - User profile and lifecycle management
- service-access - Authorization and permissions
Customer & Organization
- service-customer - Customer and tenant management
- service-registration - User and organization registration
- service-community - Community and social features
Product & Monetization
- service-product - Product catalog and plans
- service-pim - Product information management
Communication
- service-messaging - Messaging and channels
- service-notifications - Multi-channel notifications
- service-events - Event publishing and webhooks
- service-sse - Server-sent events for real-time updates
Content & Files
- service-content - Content management
- service-files - File storage and CDN delivery
- service-dynamic-link - Deep linking and dynamic links
Data & Integration
- service-ingestion - Data ingestion pipelines
- service-sync - Data synchronization
- service-integration - Third-party integrations
- service-reporting - Analytics and reporting
Operations
- service-operations - Platform operations and admin
- service-audit - Audit logging and compliance
- service-background-job - Background job orchestration
- service-social - Social features and engagement
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
- Backend Architecture - Deep dive into patterns and design
- Microservice Implementation - How to build custom services
- Platform Microservices - Explore the 20+ available services
- Server API Packages - Review installable packages