Beta1 is focused on providing the foundation for both our Java (embedded) and Cloud Native implementations.
This release is divided into two big categories: Activiti Core and Activiti Cloud Building Blocks.
On the Core, we have provided a new set of APIs for the Task and Process Runtime that enable a simple migration from embedded to the Cloud Approach. We believe that this is a fundamental change in order to provide long-term API support focused on Runtimes and following the Command Pattern. We also added security, identity and security policy abstractions to make sure that you can quickly integrate with different implementations when you embed the process & task runtime into your Spring Boot applications.
Activiti Core is now based on top of Spring Boot 2. On the Core, you should expect further integrations with Spring Boot 2. There are plans to adopt all the reactive capabilities included in Spring 5. A big part of refactoring the Core layer was about simplifying the runtimes to make sure that they don’t clash with other frameworks’ responsibilities.
The new set of Runtime APIs was conceived to promote Services that are Stateless and immutable, which allow us to write testing, verification and conformance tools to guarantee that your business processes are safe and sound to run in production environments. These Runtime APIs include new responsibilities and don’t deprecate the Activiti 6.x APIs. These new Runtime APIs are replicated at the service level (REST and Message Driven Endpoints) in the Activiti Cloud Layers.
If you want to get started with using Activiti Core 7.0.0.Beta1 take a look at the following tutorials which highlight the ProcessRuntime and TaskRuntime API usage in Spring Boot 2 applications.
On the Activiti Cloud front, we are providing the initial Beta1 versions of our foundational building blocks:
- Activiti Cloud Runtime Bundle
- Activiti Cloud Query
- Activiti Cloud Audit
- Activiti Cloud Connectors
These building blocks were designed with a Cloud Native Architecture in mind and all of them are built on top of Spring Cloud Finchley. Together, these components form the foundation for a new bread of Activiti Cloud Applications which can be distributed and scaled independently. All these building blocks can be used as independent Spring Boot applications, but for large-scale deployments, these components have been designed and tested using Docker Containers and Kubernetes as the main target platform. We have been using Jenkins X to build components that need to be managed, upgraded and monitored in very dynamic environments.
All these building blocks understand the environment in which they are running, so they are enabled to work with components such SSO/IDM, Service Registry, Data Streams, Configuration Server, and Gateways. By being aware of the environment, our applications can be managed,configured and scaled independently.
It is important to understand that we have also included some experimental services in this release including:
- Application Service
- Modelling backend services
- GraphQL support for the Query Service / Notification Service
- An alternative Mongo DB implementation for Audit Service
If you want to start with the Cloud Native approach we recommend looking at the Activiti Cloud HELM charts for Kubernetes: https://github.com/Activiti/activiti-cloud-charts/tree/master/activiti-cloud-full-example
These example HELM Charts can be used to get all the services up and running (v0.2.x for Beta1).
Check the following blog post if you want to get started with Activiti Cloud in GKE.
In this release, we didn’t include any UI bits, and we focused on core services to build Cloud Native applications. In the following Beta2 and RC releases we will include new backend services to support the new Activiti BPMN2 Modeler application. This new set of modeling services and the new Activiti Modeler application is currently being designed to enable our Cloud Deployments by providing a simplified packaging mechanism for our Activiti Cloud Applications.
On future releases we will be hardening our building blocks, improving documentation and examples and adding new services to simplify implementations. We are actively looking at tools such as Istio and KNative to provide out of the box integration with other services and tools that rely on such technologies.
We are also contributing and collaborating with the Spring Cloud community to make sure that our components are easy to use and adopt rather than clash with any of the other Spring Cloud infrastructure components. This also involves testing our core building blocks in Pivotal Containers Services (PKS) which is based on Kubernetes.
We want to provide a continuous stream of community innovation and for that reason, we will change how the Core and Cloud artefacts are versioned and their release lifecycles. We are moving to a Continuous Delivery approach for each of the libraries that we build following the practices mentioned in the Accelerate book. We will, of course, update the structure of our projects but the services and APIs will remain the same.
You should expect some naming changes between Beta and RC artifacts. We are still polishing new service names and configurations. This will be all documented in the release notes for each release. You can always keep an eye on our public Roadmap document (that will be updated in the following days) for the future Beta, RC and GA releases.
As always, this is a great moment to join the community and provide feedback. If you are looking into building Cloud Native applications, we are more than happy to share and get feedback from people going through the same journey. Feel free to join our daily open standups or ping us in our Gitter channel.