Summary
Create a standalone image optimisation engine capable of optimising images asynchronously, managing optional approval workflows, and exposing a simple integration interface for any consumer.
The engine must be reusable independently of ReactEdge and adaptable to multiple environments, including CMS platforms, eCommerce systems, and CDN integrations.
Problem
Many applications serve original images that are larger than necessary or not available in modern formats. Optimising these assets synchronously increases response times, while manual optimisation does not scale.
A reusable service is required to optimise assets transparently without affecting the end-user experience.
Objectives
- Optimise images asynchronously.
- Never block image delivery.
- Preserve the original asset.
- Produce one or more optimised sibling assets.
- Support configurable approval workflows.
- Notify external systems when optimisation completes.
- Expose a simple API suitable for standalone or embedded deployments.
Functional Requirements
Asynchronous Processing
When an image is requested and no optimised version exists:
- Return the original image immediately.
- Queue an optimisation job.
- Generate optimised image variants.
- Store the generated assets.
- Publish the optimisation result.
Approval Workflow
Support two operating modes.
Automatic
- Optimised assets become available immediately.
- Completion notifications are still emitted.
Approval Required
- Optimised assets remain pending.
- Notifications are emitted.
- External systems decide when assets become active.
Approval behaviour must be configurable.
Integration Model
The engine must expose integration points allowing consumers to:
- request image optimisation
- determine whether an optimised asset exists
- activate approved assets
- receive optimisation events
- receive approval events
The engine must not depend on any specific CMS, widget framework, or commerce platform.
Deployment Modes
The same engine should support multiple deployment models:
- standalone optimisation service
- middleware in front of an existing CDN
- embedded service within an application
- local development environment
No deployment model should require changes to the optimisation logic.
Non-functional Requirements
- Idempotent optimisation
- Fault tolerant
- Retry support
- Parallel processing
- Configurable image formats and quality
- Observable through logs and telemetry
- Extensible through adapters
Success Criteria
- First requests never wait for optimisation.
- Original assets remain available.
- Optimised assets are generated asynchronously.
- Approval workflow operates correctly in both automatic and manual modes.
- Consumers can integrate the engine without depending on ReactEdge.
- The same engine functions identically in standalone and CDN middleware deployments.
Summary
Create a standalone image optimisation engine capable of optimising images asynchronously, managing optional approval workflows, and exposing a simple integration interface for any consumer.
The engine must be reusable independently of ReactEdge and adaptable to multiple environments, including CMS platforms, eCommerce systems, and CDN integrations.
Problem
Many applications serve original images that are larger than necessary or not available in modern formats. Optimising these assets synchronously increases response times, while manual optimisation does not scale.
A reusable service is required to optimise assets transparently without affecting the end-user experience.
Objectives
Functional Requirements
Asynchronous Processing
When an image is requested and no optimised version exists:
Approval Workflow
Support two operating modes.
Automatic
Approval Required
Approval behaviour must be configurable.
Integration Model
The engine must expose integration points allowing consumers to:
The engine must not depend on any specific CMS, widget framework, or commerce platform.
Deployment Modes
The same engine should support multiple deployment models:
No deployment model should require changes to the optimisation logic.
Non-functional Requirements
Success Criteria