Skip to content

Commit

Permalink
version 3.0.16
Browse files Browse the repository at this point in the history
  • Loading branch information
acn-ericlaw committed Aug 31, 2024
1 parent 003743a commit 986ff5a
Show file tree
Hide file tree
Showing 36 changed files with 223 additions and 204 deletions.
18 changes: 18 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,24 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

---
## Version 3.0.16, 8/31/2024

### Added

N/A

### Removed

N/A

### Changed

1. Updated documentation
2. AsyncHttpRequest - remove the class type variable in the data model
3. MultiLevelMap - update the removeElement method
4. OSS update - GSON 2.11.0, classpath 4.8.174, guava 33.3.0-jre, vertx 2.5.9, spring boot 3.3.3, spring framework 5.3.39

---
## Version 3.0.15, 5/1/2024

Expand Down
75 changes: 35 additions & 40 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,34 +1,3 @@
# IMPORTANT

Good news! We have published our enterprise extension "Event Script" as open source in the "Mercury-Composable"
repository below. It is a new paradigm for building maintainable, scalable, and future-proof applications.
By embracing the principles of self-contained functions and event-driven communication, you can conquer complexity
and write code that is a joy to work with.

[Mercury 4.x: https://github.com/Accenture/mercury-composable](https://github.com/Accenture/mercury-composable)

[Documentation: https://accenture.github.io/mercury-composable/](https://accenture.github.io/mercury-composable/)

July 2024

# Mercury 3.0

Mercury 3.0 is maintained for backward compatibility only. Occasionally, we may back-port some features from
Mercury Composable 4.x.

You should use Mercury 4.x unless you need backward compatibility for your production systems.

# Differences between Mercury 3.0 and 4.x

The key differences of Mercury 3.0 vs the latest Mercury-Composable 4.x are:

| Category | Mercury 3.0 | Mercury 4.x |
|:---------------------|:----------------------|:------------------------------------------------|
| Java version | Supports Java 1.8 | Requires Java 21 or higher |
| Event orchestration | Orchestration by code | Orchestration by configuration ("Event Script") |
| Multitasking | Coroutine and kernel | Java 21 virtual threads, coroutine and kernel |
| Functional isolation | KernelThreadRunner | Virtual Threads and KernelThreadRunner |

# Welcome to the Mercury project

The Mercury project is created with one primary objective -
Expand All @@ -45,25 +14,52 @@ using three function execution strategies:
2. coroutine
3. suspend function

Mercury achieves virtual threading using coroutine and suspend function. It will fully embrace
Java 19 virtual thread feature when it becomes officially available later in 2023.
Mercury version 3 achieves virtual threading using coroutine and suspend function.

In version 4, it fully embraces Java 21 virtual thread feature that was officially available since 12/2023.

August, 2024

# Mercury version 3

Mercury version 3 is a software development toolkit for event-driven programming.

Event-driven programming allows functional modules to communicate with each other using events instead
of direct method calls. This allows the functions to be executed asynchronously, improving overall
application performance.

IMPORTANT: You should use Mercury version 4 unless you need backward compatibility for your production systems.

Please visit Mercury Version 4 using the links below:

[Mercury v4: https://github.com/Accenture/mercury-composable](https://github.com/Accenture/mercury-composable)

[Documentation: https://accenture.github.io/mercury-composable/](https://accenture.github.io/mercury-composable/)

# Differences between Mercury version 3 and 4

The key differences of Mercury version 3 and the latest Mercury-Composable version 4 are:

| Category | Mercury 3.0 | Mercury 4.x |
|:---------------------|:----------------------------|:----------------------------------------------|
| Java version | Supports Java 1.8 or higher | Requires Java 21 or higher |
| Event management | Orchestration by code | Event choreography by configuration |
| Multitasking | Coroutine and kernel | Java 21 virtual threads, coroutine and kernel |
| Functional isolation | KernelThreadRunner | Virtual Threads and KernelThreadRunner |

# Breaking changes

By default, the system will run all functions as "coroutines" where previous versions run them using
By default, the system runs all functions as "coroutines" where previous versions run them using
a kernel thread pool.

For consistency, this unifies the behavior with Mercury Composable version 3.1.

The `CoroutineRunner` annotation has been removed and a new `KernelThreadRunner` annotation is available
to tell the system to run a function in the kernel thread pool.
The `CoroutineRunner` annotation has been removed and replaced with the new `KernelThreadRunner` annotation.

The "rest.automation.yaml" key is renamed as "yaml.rest.automation" after we unify the parsing behavior
of application.properties with application.yml.

# Write your first composable application

To get started with your first application, please refer to the [Developer Guide](guides/CHAPTER-1.md).
To get started with your first application, please refer to the [Chapter 4, Developer Guide](guides/CHAPTER-1.md).

# Introduction to composable architecture

Expand Down Expand Up @@ -138,7 +134,6 @@ For example, the CQRS design pattern is well accepted for building high performa
![figure-1.png](diagrams/figure-1.png)


However, within a single application unit, the application is mostly built in a traditional way.
i.e. one function is calling other functions and libraries directly, thus making the modules and libraries
tightly coupled. As a result, microservices may become smaller monolithic applications.
Expand Down
13 changes: 7 additions & 6 deletions benchmark/benchmark-client/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<artifactId>benchmark-client</artifactId>

<packaging>jar</packaging>
<version>3.0.15</version>
<version>3.0.16</version>
<name>Benchmark client</name>

<parent>
Expand All @@ -21,12 +21,13 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<snakeyaml.version>2.2</snakeyaml.version>
<hazelcast.version>5.3.6</hazelcast.version>
<kafka.version>3.7.0</kafka.version>
<gson.version>2.10.1</gson.version>
<netty.version>4.1.109.Final</netty.version>
<kafka.version>3.7.1</kafka.version>
<gson.version>2.11.0</gson.version>
<netty.version>4.1.111.Final</netty.version>
<slf4j.version>2.0.11</slf4j.version>
<log4j2.version>2.22.0</log4j2.version>
<kotlin.version>1.9.22</kotlin.version>
<spring-framework.version>5.3.39</spring-framework.version>
<java.version>1.8</java.version>
</properties>

Expand All @@ -45,7 +46,7 @@
<dependency>
<groupId>org.platformlambda</groupId>
<artifactId>platform-core</artifactId>
<version>3.0.15</version>
<version>3.0.16</version>
</dependency>

<!-- select your cloud connector (hazelcast-connector or kafka-connector).
Expand All @@ -57,7 +58,7 @@
<dependency>
<groupId>org.platformlambda</groupId>
<artifactId>kafka-connector</artifactId>
<version>3.0.15</version>
<version>3.0.16</version>
</dependency>

<!-- https://mvnrepository.com/artifact/junit/junit -->
Expand Down
13 changes: 7 additions & 6 deletions benchmark/benchmark-server/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<artifactId>benchmark-server</artifactId>

<packaging>jar</packaging>
<version>3.0.15</version>
<version>3.0.16</version>
<name>Benchmark server</name>

<parent>
Expand All @@ -21,12 +21,13 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<snakeyaml.version>2.2</snakeyaml.version>
<hazelcast.version>5.3.6</hazelcast.version>
<kafka.version>3.7.0</kafka.version>
<gson.version>2.10.1</gson.version>
<netty.version>4.1.109.Final</netty.version>
<kafka.version>3.7.1</kafka.version>
<gson.version>2.11.0</gson.version>
<netty.version>4.1.111.Final</netty.version>
<slf4j.version>2.0.11</slf4j.version>
<log4j2.version>2.22.0</log4j2.version>
<kotlin.version>1.9.22</kotlin.version>
<spring-framework.version>5.3.39</spring-framework.version>
<java.version>1.8</java.version>
</properties>

Expand All @@ -45,7 +46,7 @@
<dependency>
<groupId>org.platformlambda</groupId>
<artifactId>platform-core</artifactId>
<version>3.0.15</version>
<version>3.0.16</version>
</dependency>

<!-- select your cloud connector (hazelcast-connector or kafka-connector).
Expand All @@ -57,7 +58,7 @@
<dependency>
<groupId>org.platformlambda</groupId>
<artifactId>kafka-connector</artifactId>
<version>3.0.15</version>
<version>3.0.16</version>
</dependency>

<!-- https://mvnrepository.com/artifact/junit/junit -->
Expand Down
11 changes: 6 additions & 5 deletions connectors/adapters/hazelcast/hazelcast-connector/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<artifactId>hazelcast-connector</artifactId>

<packaging>jar</packaging>
<version>3.0.15</version>
<version>3.0.16</version>
<name>Cloud connector for Hazelcast cluster</name>

<parent>
Expand All @@ -21,12 +21,13 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<snakeyaml.version>2.2</snakeyaml.version>
<hazelcast.version>5.3.6</hazelcast.version>
<kafka.version>3.7.0</kafka.version>
<gson.version>2.10.1</gson.version>
<netty.version>4.1.109.Final</netty.version>
<kafka.version>3.7.1</kafka.version>
<gson.version>2.11.0</gson.version>
<netty.version>4.1.111.Final</netty.version>
<slf4j.version>2.0.11</slf4j.version>
<log4j2.version>2.22.0</log4j2.version>
<kotlin.version>1.9.22</kotlin.version>
<spring-framework.version>5.3.39</spring-framework.version>
<java.version>1.8</java.version>
</properties>

Expand All @@ -42,7 +43,7 @@
<dependency>
<groupId>org.platformlambda</groupId>
<artifactId>cloud-connector</artifactId>
<version>3.0.15</version>
<version>3.0.16</version>
</dependency>

<!-- https://mvnrepository.com/artifact/com.hazelcast/hazelcast-client -->
Expand Down
13 changes: 7 additions & 6 deletions connectors/adapters/hazelcast/hazelcast-presence/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<groupId>org.platformlambda</groupId>
<artifactId>hazelcast-presence</artifactId>
<packaging>jar</packaging>
<version>3.0.15</version>
<version>3.0.16</version>
<name>Presence monitor for Hazelcast</name>

<parent>
Expand All @@ -19,12 +19,13 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<snakeyaml.version>2.2</snakeyaml.version>
<hazelcast.version>5.3.6</hazelcast.version>
<kafka.version>3.7.0</kafka.version>
<gson.version>2.10.1</gson.version>
<netty.version>4.1.109.Final</netty.version>
<kafka.version>3.7.1</kafka.version>
<gson.version>2.11.0</gson.version>
<netty.version>4.1.111.Final</netty.version>
<slf4j.version>2.0.11</slf4j.version>
<log4j2.version>2.22.0</log4j2.version>
<kotlin.version>1.9.22</kotlin.version>
<spring-framework.version>5.3.39</spring-framework.version>
<java.version>1.8</java.version>
</properties>

Expand All @@ -40,13 +41,13 @@
<dependency>
<groupId>org.platformlambda</groupId>
<artifactId>service-monitor</artifactId>
<version>3.0.15</version>
<version>3.0.16</version>
</dependency>

<dependency>
<groupId>org.platformlambda</groupId>
<artifactId>hazelcast-connector</artifactId>
<version>3.0.15</version>
<version>3.0.16</version>
</dependency>

<!-- https://mvnrepository.com/artifact/junit/junit -->
Expand Down
11 changes: 6 additions & 5 deletions connectors/adapters/kafka/kafka-connector/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<artifactId>kafka-connector</artifactId>

<packaging>jar</packaging>
<version>3.0.15</version>
<version>3.0.16</version>
<name>Cloud connector for Kafka cluster</name>

<parent>
Expand All @@ -21,12 +21,13 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<snakeyaml.version>2.2</snakeyaml.version>
<hazelcast.version>5.3.6</hazelcast.version>
<kafka.version>3.7.0</kafka.version>
<gson.version>2.10.1</gson.version>
<netty.version>4.1.109.Final</netty.version>
<kafka.version>3.7.1</kafka.version>
<gson.version>2.11.0</gson.version>
<netty.version>4.1.111.Final</netty.version>
<slf4j.version>2.0.11</slf4j.version>
<log4j2.version>2.22.0</log4j2.version>
<kotlin.version>1.9.22</kotlin.version>
<spring-framework.version>5.3.39</spring-framework.version>
<java.version>1.8</java.version>
</properties>

Expand All @@ -42,7 +43,7 @@
<dependency>
<groupId>org.platformlambda</groupId>
<artifactId>cloud-connector</artifactId>
<version>3.0.15</version>
<version>3.0.16</version>
</dependency>

<dependency>
Expand Down
13 changes: 7 additions & 6 deletions connectors/adapters/kafka/kafka-presence/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<groupId>org.platformlambda</groupId>
<artifactId>kafka-presence</artifactId>
<packaging>jar</packaging>
<version>3.0.15</version>
<version>3.0.16</version>
<name>Presence monitor for Kafka</name>

<parent>
Expand All @@ -19,12 +19,13 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<snakeyaml.version>2.2</snakeyaml.version>
<hazelcast.version>5.3.6</hazelcast.version>
<kafka.version>3.7.0</kafka.version>
<gson.version>2.10.1</gson.version>
<netty.version>4.1.109.Final</netty.version>
<kafka.version>3.7.1</kafka.version>
<gson.version>2.11.0</gson.version>
<netty.version>4.1.111.Final</netty.version>
<slf4j.version>2.0.11</slf4j.version>
<log4j2.version>2.22.0</log4j2.version>
<kotlin.version>1.9.22</kotlin.version>
<spring-framework.version>5.3.39</spring-framework.version>
<java.version>1.8</java.version>
</properties>

Expand All @@ -40,13 +41,13 @@
<dependency>
<groupId>org.platformlambda</groupId>
<artifactId>service-monitor</artifactId>
<version>3.0.15</version>
<version>3.0.16</version>
</dependency>

<dependency>
<groupId>org.platformlambda</groupId>
<artifactId>kafka-connector</artifactId>
<version>3.0.15</version>
<version>3.0.16</version>
</dependency>

<!-- https://mvnrepository.com/artifact/junit/junit -->
Expand Down
Loading

0 comments on commit 986ff5a

Please sign in to comment.