Scale your operations and go beyond
AlfStream is a Parashift proprietary product, created out of the need to have one Alfresco instance replicated to another. It has since grown to become a smart, synchronization solution able to effectively connect multiple Alfresco instances together, as well as connect other lines of business application systems with each other.
Powered by Apache Camel, AlfStream uses event stream processing, where one system subscribes to specific events of another. Synchronization of every day events, such as: content creation, updates and deletions, takes place in an eventually consistent timeframe of just a handful of seconds.
Typical implementations of AlfStream include disaster recovery, business expansion or geographically distributed processing, which are all critical aspects that can greatly impact an organization’s sustainable growth.
Provided as a solution, AlfStream can sit in the cloud and on-premise. With the ability to connect to any number of applications, the Parashift team fully support AlfStream with a range of professional services to ensure that every client is empowered to tailor the synchronization solution to their specific needs.
- Content & metadata replication, including folders and sites
- Permission replication
- Integration through an API and Content Model Interoperability Standard (CMIS)
- Deployment freedom, with cloud or on-premise, or both, supported
AlfStream Technical Specifications
AlfStream is a synchronisation engine to allow one Alfresco instance to synchronise externally to other instances, or completely different systems.
It is a ready made solution to integrate an Alfresco repository into other independent systems.
Why Would I need it?
There are a few use cases that AlfStream provides a solution for:
- You have remote offices, each with their own Alfresco instance, and you want to ensure that your documents remain in sync between instances
- You want to migrate from a legacy repository into Alfresco, but you might need to have a transition period where changes are reflected in both systems
- You want events in Alfresco to trigger changes in other systems, such as publishing to a website, or executing business processes
How does it work?
AlfStream has two main components:
- An Alfresco Module plugin which is installed into Alfresco
- An Apache Camel Component with a set of predefined routes for common scenarios
AlfStream turns an Alfresco repository into a more transactional event-driven system. This can be seen as a form of stream processing, or an application of the Event Sourcing design pattern. It does this by creating two main RESTful API endpoints for updating and reading events in Alfresco.
What AlfStream is at its core is a way to subscribe to a stream of events that occur in Alfresco: creates, reads, updates and deletes, which can be synchronised with another system. Every time a change is taken within Alfresco, an event is triggered, so that anything observing these events can act upon them accordingly.
Rather than define upfront what systems can observe events from Alfresco, we instead have created an Apache Camel Component, which allows us to decouple and apply Enterprise Integration Patterns so that it can be integrated into virtually any external line of business application or other system. The AlfStream camel component will connect to an Alfresco repository and generate exchanges for all the nodes within a repository. It can also submit exchanges to Alfresco, so that updates can be made.
So we don’t have system administrators cover common ground, or invest a lot of time in configuration, we do include some of the most used and battle-tested scenarios, such as syncing to a file system and two-way replication. AlfStream is divided up into an AMP (Alfresco Module Package) that is installed within the Alfresco repository, and a camel component that can be installed and used within a Camel Runtime, such as Apache Karaf.
We include a number of example Camel route blueprints, including the following common scenarios:
- Debug Logging
- Syncing to/from a Local File System
- One-Way Synchronisation
- Two-Way Synchronisation (Bidirectional)
- Data Warehousing
AlfStream presents two main Restful API calls in Alfresco: The events webscript which displays the list of events in JSON format, and the update webscript, which will receive updates in the form of multipart/form-data and change Alfresco accordingly.
These endpoints support updating/reading the following information from Alfresco:
- Nodes and Node content, including custom types such as data lists
- Node properties, both custom and out of the box
- Permissions and Roles
- Associations, both Parent/Child and Peer
How do I install it?
Following the guides at our documentation page, we can get you up and running