Software engineering
Software engineering on Exponential: architecture, the request cycle, caching, testing and quality.
15 pages
- Console, cronjobs and background work How work runs outside a web request in Exponential - the console and its command discovery, eZScript, cronjob parts run by runcronjobs.php, content jobs for large content operations, the expqueue job queue for…
- Databases: choosing and running one The six databases Exponential 6.0.x supports, in the project's order of preference - SQLite 3, PostgreSQL, MongoDB, MariaDB, Oracle, MySQL - compared as an engineer compares them - driver, CI coverage, multi-node use…
- Caching layers for engineers Every cache between a visitor and the database of an Exponential site, seen by an engineer - what each layer stores, what it is keyed on, whether it ships on, who it serves, which servers share it, and the correctness…
- Cache invalidation and clearing How Exponential invalidates its caches on its own (eZContentCacheManager on publish, the content/cache event, expiry timestamps, query cache table tracking) and how to clear them by hand by id or tag, which change needs…
- Application servers The three ways Exponential is served - a web server with PHP-FPM, Exponential Velocity with persistent workers and a response cache, and FrankenPHP in classic mode - compared by process model, state between requests…
- Velocity persistent workers How Exponential Velocity runs PHP - the parent, the warm-up, the zygote and the persistent worker pool, how the pool is sized and when a worker is replaced, what is reset between requests and what is not, which user…
- Scaling and clustering How an Exponential site scales - up on one machine with Velocity and caches, and out to several web nodes - with what must be shared (database, files, sessions), what stays per node (caches, logs, workers), the DFS…
- Performance measurement and benchmarks How to measure Exponential's performance before and after a change - exp:benchmark in its http, kernel, micro and baseline modes, the micro benchmark CI runs on every push, the debug bar's timing and SQL figures…
- Observability: logs, debug bar and audit trail What an Exponential installation tells you about itself and where - the kernel logs and their rotation, the request logs 404.log and security.log, the log viewer and exp:logs, error references, the debug bar, the…
- Deploying a change How a PHP, settings, template or stylesheet change reaches every runtime that serves an Exponential site - the steps of exp:velocity deploy and why their order matters, PHP-FPM reloads and OPcache, Velocity restarts…
- Incident handling How engineers respond to an outage, a regression or a security incident on an Exponential site - triage, the tools for each symptom (maintenance mode, repair from the browser, error references, logs, audit trail…
- Multi-site installations How one Exponential installation serves several sites - siteaccesses per site and language, shared or separate content trees, per-site settings inside extensions, per-site logs, caches and INI caches, cross-site links…
- Security engineering overview The security model of Exponential for engineers - access control through policies, output escaping, safe SQL, CSRF tokens, the secure defaults of 2026, the HTTP security layer, authentication and two-factor sign-in, the…
- HTTP security: headers, CSP, request rules and proxies The HTTP security layer of Exponential - security headers from SecurityHeaders[], the Content Security Policy with modes, directives, nonces and reports, request rules that allow, deny, redirect or log after URL…
- Authentication, sessions and two-factor sign-in How users and machines authenticate to Exponential - password storage and policy, the list of well-known passwords, lockout, session handlers and cookies, two-factor sign-in with sevenx_authentication_2fa, OAuth 2.0 and…
Documentation license
This documentation is free documentation, licensed under the GNU Free Documentation License 1.3 or later.
Exponential Copyright © 1998-2026 Exponential Foundation and 7x