Here's a brief overview of the new Alfresco Transform Service that is being introduced as an option for Alfresco Content Services (ACS) 6.1. It also includes evolutionary changes to the ACS Content Repository.
The video can be found here
I will try to come back and update this blog post with links to other related slides
- Architectural Changes in Repo 6.1 & beyond slides ( Alex Mukha & Stefan Kopf )
- Transform Graph ( Lucian Tuca )
- Porting Custom Transformer to new Transform Service slides ( Alan Davis )
If you've been closely following the ACS reference deployment projects, you may already have noticed the new Transform Service. This is available now alongside the ACS 6.1 release.
The Transform Service is an optional component that is enabled by default in the ACS reference deployments, whether using Docker Compose, Helm / Kubernetes or the AWS EKS stack.
Overview of the Transform Service
The following overview is extracted from the documentation. Thanks Adelaide Nxumalo.
The Transform Service handles the essential transforms, such as Microsoft Office documents, images, and PDFs. These include PNG for thumbnails, PDF and JPEG for downloads and previews.
The following diagram shows a simple representation of the Transform Service components:
This shows an example implementation of how you can deploy into AWS, using a number of managed services:
- Amazon EKS - Elastic Container Service for Kubernetes
- Amazon MQ - Managed message broker service for Apache ActiveMQ
- Amazon EFS - Amazon Elastic File System
You can replace the AWS services (EKS, MQ, and EFS) with a self-managed Kubernetes cluster, ActiveMQ (configured with failover), and a shared file store, such as NFS.
The main components of the Transform Service are:
- Content Repository (ACS): This is the repository where documents and other content resides. The repository produces and consumes events destined for the message broker (such as ActiveMQ or Amazon MQ). It also reads and writes documents to the shared file store.
- ActiveMQ: This is the message broker (either a self-managed ActiveMQ instance or Amazon MQ), where the repository and the Transform Router send image transform requests and responses. These JSON-based messages are then passed to the Transform Router.
- Transform Router: The Transform Router allows simple (single-step) and pipeline (multi-step) transforms that are passed to the Transform Engines. The Transform Router (and The Transform Engines) run as independently scalable Docker containers.
- Transform Engines: The Transform Engines transform files sent by the repository. Here are some example transformation for each Transform Engine (this is not an exhaustive list):
- LibreOffice (e.g. docx to pdf)
- ImageMagick (e.g. resize)
- Alfresco PDF Renderer (e.g. pdf to png)
- Tika (e.g. docx to plain text)
- Shared File Store: This is used as temporary storage for the original source file (stored by the repository), intermediate files (or multi-step transforms), and the final transformed target file. The target file is retrieved by the repository after it's been processed by one or more of the Transform Engines.
For more details, please refer to the Transform Service documentation:
Please try out try out ACS 6.1 reference deployments with the new Transform Service.
We look forward to your feedback. Please free to contact Preeti Nirwal or myself.
Jan Vonka & the INT team (Integrations n Transformations)