Deployment, Performance, and Troubleshooting
What to know
Deployment involves packages (content packages via Package Manager), code deployment (bundles via Felix console/Cloud Manager), and config (OSGi configs, cloud configs). Understand run modes (author, publish, custom) and config inheritance. Know Dispatcher caching and invalidation, and performance tuning (thread pools, JVM heap, query tuning).
Troubleshooting concepts
Know how to read logs (error.log, request.log), use Felix console for bundle state, and CRXDE/Query for repository inspection. Understand common failure causes: missing service user mapping, bundle not active, clientlib not loaded, FDM connectivity, and permission denied. Know health checks and JMX metrics.
Traps
A frequent trap is deploying to author but forgetting publish (or vice versa). Another is assuming an OSGi config applies globally - run-mode-specific configs override. Questions also test that a service user must have the correct mapping or background processes fail with permission errors. Watch for confusion between package (content) and bundle (code) deployment.
Rule of thumb
When a feature works on author but fails on publish, check run-mode configs, service user mappings, and Dispatcher rules before suspecting code.
Worked example
A workflow step fails on publish with a permission error. Check the service user mapping for the workflow's service, verify the mapped user has jcr:read/jcr:write on the payload path, and confirm the OSGi config is present in the publish run mode.