By Fahiz Fairose Khan
Like any good developer, I feel the need to learn new technologies and am constantly on the lookout for information that will benefit my work. It’s one of the reasons why I attended this year Alfresco DevCon 2019. Here’s what I got out of the day.
Alfresco APS 7.0
Alfresco released APS 7.0 (Activiti 7) with a particular focus on process-led implementation.
Alfresco’s CTO and founder John Newton said natural user interface and process-led integration will be the future; opening doors for people to communicate with systems by voice or chat without navigating to forms or pages.
I personally feel this will give more potential for APS to integrate with any system easily. For example, conversation passed data gathering and triggering the appropriate workflow according to the user needs.
Alfresco Content Service (ACS) 6.1
The focus of ACS 6.1 and SDK 4.0 was primarily on the containerisation of existing monolithic content services to align with current technological trends. The current cloud-first approach mainly focuses on AWS infrastructure but they have intentions to support more cloud providers in the near future. At the moment the architecture is based on AWS EKS (Kubernetes) and Dockerised container.
The founder of Metaversant, Jeff Potts, talked about how the Alfresco Events subsystem can be externalised using Kafka and Spring boot (microservice) to reduce the load of Alfresco application and make the existing system more resilient. This solution works from Alfresco 5.x and higher. The limitation of this implementation is that it doesn’t broadcast the Access Control List (ACL).
The suggested solution could be found on the following GitHub links;
- Alfresco Kafka: https://github.com/jpotts/Alfresco-Kafka
- Alfresco Kafka listener example: https://github.com/jpotts/Alfresco-Kafka-listener-example
- Demo: https://youtu.be/K40M2gjA7vM
ACS 6.1 (enterprise version) comes with new metrics tools integrated. The endpoint for this new service stays under the following URL /alfresco/s/prometheus. This is powered by the micrometer library.
The available metrics from micrometers are:
- basic JVM metrics such as CPU, memory, GC threads and etc.
- Rest API call metrics such as api call execution time, type of the request and path of the request.
- DB layer metrics: I. Timer such as query execution time, type of query and mybatis query ID. ii. Gauges: number of query active and idle.
- Tomcat metrics: servlet response timer with particular response times.
Future plans for the Micrometer are to integrate it with AWS cloud watch and monitoring into helm chart and metrics for Auditing, Rendition, Hazelcast cache and logged in users.
For ACS 6.1 there are new scripts and tooling along with CloudFormation templates. The setup will cover VPC including bastion hosts, EKS with worker nodes, S3 including replication, AuroraDB, AmazonMQ and IAM permissions. The following are deprecated in ACS 6.1 and removed:
- Synchronous transformation, Cloud sync (deprecated will be removed in future versions)
Alfresco Identity Service
Alfresco introduces new Identity service as Alfresco Identity Service (AIS). This is to remove the APS and ACS only to rely on LDAP and both applications to work in sync. The new AIS uses Keycloak under the hood and it uses JWT token to authenticate users. Future plans for the identity service are to manage the user profile and user groups.
Alfresco has plans in the future to move some more components from it’s ACS application and work as a ASync process, such as auditing, metadata extractions, search indexing, rule/ actions.
Alfresco Development Framework (ADF) 3.0
Alfresco is heavily focusing on ADF 3.0. Currently, it uses AngularJS 7 and typescript. There were many questions from developers such as, will the ADF replace the Share component? The response from CEO Alfresco Bernadette Nixon was that they will not discontinue the share application, and will ship this in future versions as well. But it’s recommended to avoid customization on Share. If any customization is needed, it’s recommended to use ADF.
To conclude, it was a very informative developer conference, showcasing many new technology integrations with Alfresco.
Alfresco showed strong signs they are adopting new technology and moving to cloud by splitting their application to small services gradually. It’s not a case of a single bin file that can be installed on the local machine to run a quick demo anymore. Focusing on process first and natural user interface promises that Alfresco will present more exciting things in future developer conferences.