# 7.1.0-M13

You can consume all the Activiti artifacts for this release from Alfresco Nexus:

```markup
<repositories>
  <repository>
    <id>activiti-releases</id>
    <url>https://artifacts.alfresco.com/nexus/content/repositories/activiti-releases</url>
  </repository>
</repositories>
```

*Activiti Cloud:*

```markup
<dependencyManagement>
   <dependencies>
     <dependency>
       <groupId>org.activiti.cloud</groupId>
       <artifactId>activiti-cloud-dependencies</artifactId>
       <version>7.1.0-M13</version>
       <scope>import</scope>
       <type>pom</type>
     </dependency>
   </dependencies>
 </dependencyManagement>
```

*Activiti Core*

```markup
  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.activiti</groupId>
        <artifactId>activiti-dependencies</artifactId>
        <version>7.1.0-M13</version>
        <scope>import</scope>
        <type>pom</type>
      </dependency>
    </dependencies>
  </dependencyManagement>
```

### In the milestone 7.1.0-M13 you will find the following [main fixes & features](https://github.com/Activiti/Activiti/milestone/37?closed=1):

* [Add support for partitioned message streams](https://github.com/Activiti/Activiti/issues/3639): messages used to transfer data from the runtime bundle to query and audit service can be partitioned. There will be as many instances of the consumer as the number of partitions. Each instance will consume data from a single partition. In Helm deployment, partitioning can be enabled by providing [the following extra values](https://github.com/Activiti/activiti-cloud-full-chart/blob/7.1.0-M13/charts/activiti-cloud-full-example/partitioned-values.yaml) (`partitionCount` defines how many partitions will be used and the Helm deployment will create that many replicas of query service using a `StatefulSet` rather than a `Deployment`):

```yaml
global:
  messaging:
    # global.messaging.partitioned -- enables partitioned messaging in combination with messaging.enabled=true && messaging.role=producer|consumer
    partitioned: true
    # global.messaging.partitionCount -- configures number of partitioned consumers 
    partitionCount: 2
```

Result of `kubectl get pods`:

```markup
NAME                                           READY   STATUS    RESTARTS   AGE
m13-activiti-cloud-connector-66bb74576-j42hm   1/1     Running   0          153m
m13-activiti-cloud-modeling-769fcb67b5-kx9qk   1/1     Running   0          153m
m13-activiti-cloud-query-0                     1/1     Running   0          153m
m13-activiti-cloud-query-1                     1/1     Running   0          153m
m13-activiti-modeling-app-847d8dfbb-2lggd      1/1     Running   0          153m
m13-keycloak-0                                 1/1     Running   0          153m
m13-postgresql-0                               1/1     Running   0          153m
m13-postgresql-id-0                            1/1     Running   0          153m
m13-runtime-bundle-7d568d9844-5vhtq            1/1     Running   0          153m
rabbitmq-0                                     1/1     Running   0          153m
```

* [Add Activiti Cloud application support for Kafka binder](https://github.com/Activiti/Activiti/issues/3625): in addition to Rabbit MQ binder (that remains the default one), the example docker images generated by [activiti-cloud-application](https://github.com/Activiti/activiti-cloud-application) are also embedding Kafka binder. In order to use it instead of Rabbit MQ binder, pass the following [values](https://github.com/Activiti/activiti-cloud-full-chart/blob/7.1.0-M13/charts/activiti-cloud-full-example/kafka-values.yaml) during Helm deployment:

```yaml
global:
  messaging:
    broker: kafka
kafka:
  enabled: true
rabbitmq:
  enabled: false
```

Result of `kubectl get pods`:

```yaml
NAMESPACE   NAME                                                 READY   STATUS    RESTARTS   AGE
m13-kafka   activiti-activiti-cloud-connector-6ff67bc988-s88jj   1/1     Running   0          4h35m
m13-kafka   activiti-activiti-cloud-modeling-98499f5d5-lw9hd     1/1     Running   0          4h35m
m13-kafka   activiti-activiti-cloud-query-fd5bcbc9f-89jrl        1/1     Running   0          4h35m
m13-kafka   activiti-activiti-modeling-app-bbd8d97c8-qnl46       1/1     Running   0          4h18m
m13-kafka   activiti-keycloak-0                                  1/1     Running   0          4h35m
m13-kafka   activiti-postgresql-0                                1/1     Running   0          4h35m
m13-kafka   activiti-postgresql-id-0                             1/1     Running   0          4h35m
m13-kafka   activiti-runtime-bundle-865895df8d-hhgwm             1/1     Running   0          4h35m
m13-kafka   kafka-0                                              1/1     Running   0          4h35m
m13-kafka   zookeeper-0                                          1/1     Running   0          4h35m
```

Kafka or Rabbitmq message brokers can be deployed conditionally as part of Helm release using `rabbitmq.enabled` or `kafka.enabled`. The default values for Kafka and Rabbitmq have been set up to use message brokers provided with the Helm chart. It is possible to disable message broker deployments and use external Kafka or Rabbitmq by overriding `global.kafka` or `global.rabbitmq` values, i.e. `global.kafka.brokers` (Multiple brokers can be provided in a comma-separated list, e.g. `host1:port1,host2:port2`),`global.kafka.zkNodes` (External Zookeeper nodes).

* [Improve common helm charts for upgrades with customizations](https://github.com/Activiti/Activiti/issues/3652)
* [Block reflection on JUEL Expressions](https://github.com/Activiti/Activiti/issues/3648)
* [Upgrade to Spring Boot 2.4.5 and Spring Cloud 2020.0.2](https://github.com/Activiti/Activiti/issues/3655)
* Fix [Modeling-Service Schemas Problem](https://github.com/Activiti/Activiti/issues/3516)
* Fix [ProcessDefinitionName not provided for sub-processes](https://github.com/Activiti/Activiti/issues/3506)
* Fix [Error color state diagram is not displayed](https://github.com/Activiti/Activiti/issues/3620)
* Fix [Intermittent Sleuth failures on GraphQL service](https://github.com/Activiti/Activiti/issues/3609)
* Fix [Audit service fails with Oracle DB](https://github.com/Activiti/Activiti/issues/3592)
* Fix [M12 version run program prompting circular reference problem](https://github.com/Activiti/Activiti/issues/3650)

## Changes from previous milestones

* [The use of reflection is no longer allowed inside JUEL expressions](https://github.com/Activiti/Activiti/issues/3648)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://activiti.gitbook.io/activiti-7-developers-guide/releases/7.1.0-m13.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
