You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The Mercury project is created with one primary objective - `to make software easy to write, read, test, deploy, scale and manage`.
11
18
12
-
To this end, it introduces the concept of platform abstraction and takes event driven programming to the next level of simplicity.
19
+
It introduces the concept of platform abstraction and takes event driven programming to the next level of simplicity and sophistication.
13
20
14
-
Everything can be expressed as anonymous functions and they communicate with each other using events. However, event driven and reactive programming can be challenging. The Mercury framework hides all the complexity of event driven and reactive patterns and the magic of inter-service communication.
21
+
Everything can be expressed as anonymous functions and they communicate with each other using events. This includes turning synchronous HTTP requests and responses into async events using the REST automation system. However, event driven and reactive programming can be challenging. The Mercury framework hides all the complexity of event driven and reactive patterns and the magic of inter-service communication.
15
22
16
-
If you want digital decoupling, this is the technology that you should invest 30 minutes of your time to try it out.
23
+
If you want digital decoupling, this is the technology that you should invest 30 minutes of your time to get familiar with.
17
24
18
-
The pre-requisites are very minimal. The foundation technology requires only Java 1.8 JDK or above (Oracle or OpenJDK) and the Maven build system ("mvn"). Docker/Kubernetes are optional. The application modules that you create using the Mercury framework will run in bare metal, VM and any cloud environments.
25
+
The pre-requisites are minimal. The foundation technology requires only Java (OpenJDK 8 to 14) and the Maven build system ("mvn"). Docker/Kubernetes are optional. The application modules that you create using the Mercury framework will run in bare metal, VM and any cloud environments.
19
26
20
27
This project is created by architects and computer scientists who have spent years to perfect software decoupling, scalability and resilience, high performance and massively parallel processing,
21
28
22
29
With a very high level of decoupling, you can focus in writing business logic without distraction.
23
30
24
-
Since everything can be expressed as anonymous function, the framework itself is written using this approach. All the cloud connectors and language packs are microservices that are written as anonymous functions. In this way, you can add new connectors, plugins and language packs as you like. The framework is extensible.
31
+
Since everything can be expressed as anonymous functions, the framework itself is written using this approach, including the cloud connectors and language pack in the project. In this way, you can add new connectors, plugins and language packs as you like. The framework is extensible.
25
32
26
-
The concept is simple. You write your business logic as anonymous functions and packaged them in one or more executables. These executables may be composed as Docker images or alike. You can then deploy them. The containers communicate with each other through an event stream system like Hazelcast or Kafka.
33
+
The concept is simple. You write your business logic as anonymous functions and packaged them in one or more executables. These executables may be composed as Docker images or alike for deployment. The services in the containers communicate with each other using "service route names".
27
34
28
-
We make the event stream system works as a service mesh. Functions will talk to each other magically without configuration.
35
+
Mercury supports unlimited service route names on top of event stream and messaging systems such as Kafka and Hazelcast. While we make the event stream system works as a service mesh, Mercury can be used in standalone mode for applications that use pub/sub directly.
29
36
30
-
If you have your own preference of a different event stream system, you can follow the Hazelcast connector as an example to build your own connector.
31
-
32
-
Hope you enjoy this journey to improve the world.
37
+
In fact, you can encapsulate other event stream or even enterprise service bus (ESB) with Mercury. Just use the Kafka and Hazelcast connectors as examples. It would make your ESB runs like an event stream system for RPC, async, callback, streaming, pipeline and pub/sub use cases.
33
38
34
39
Best regards, the Mercury team, Accenture
35
40
36
-
January 2021
41
+
April 2021
37
42
38
43
## Rationale
39
44
@@ -193,7 +198,7 @@ Please do `pip install wheel` if python wheel is not installed.
0 commit comments