diff --git a/docs/modules/integrate/pages/get-started-with-vertx.adoc b/docs/modules/integrate/pages/get-started-with-vertx.adoc index 31e31cc5b..eae2b5395 100644 --- a/docs/modules/integrate/pages/get-started-with-vertx.adoc +++ b/docs/modules/integrate/pages/get-started-with-vertx.adoc @@ -468,7 +468,7 @@ You need to start at least 3 instances for the cluster to form successfully. For == Summary -In this tutorial, you learned how to add the vertx-hazelcast module and enable distributed session management, as well as how to use the `io.vertx.core.shareddata.Counter` data structure to implement a unique id generator. +In this tutorial, you learned how to add the vertx-hazelcast module and enable distributed session management, as well as how to use the `io.vertx.core.shareddata.Counter` data structure to implement a unique id generator. == Next steps @@ -477,4 +477,4 @@ You can dive deeper into the two available modules for integrating Hazelcast wit - `io.vertx:vertx-hazelcast`: the open-source module maintained by the Vert.x team. - `com.hazelcast:vertx-hazelcast-enterprise`: the enterprise module with advanced features like strong consistency for locks and counters using the CP Subsystem. -See: https://hazelcast.com/blog/seamless-integration-with-vert-x-boosting-performance-and-scalability-in-java-applications/[Seamless Integration with Vert.x] +See: https://hazelcast.com/blog/seamless-integration-with-vert-x-boosting-performance-and-scalability-in-java-applications/[Seamless Integration with Vert.x]. \ No newline at end of file diff --git a/docs/modules/integrate/pages/integrate-with-vertx.adoc b/docs/modules/integrate/pages/integrate-with-vertx.adoc index 61d429707..2b9a6a744 100644 --- a/docs/modules/integrate/pages/integrate-with-vertx.adoc +++ b/docs/modules/integrate/pages/integrate-with-vertx.adoc @@ -14,12 +14,52 @@ In Vert.x, a cluster manager is used for various functions including: There are 2 modules to choose from: -- `io.vertx:vertx-hazelcast` — this module is part of Vert.x and is maintained by the Vert.x team with contributions from Hazelcast developers. This module is licensed under the Apache 2 license. +- `io.vertx:vertx-hazelcast` — this module is part of Vert.x and is maintained by the Vert.x team with contributions from Hazelcast developers. This module is open source software (OSS) under the Apache 2 license. -- `com.hazelcast:vertx-hazelcast-enterprise` — this module is built on top of `vertx-hazelcast` and leverages functionality of {enterprise-product-name} to implement some of the cluster manager functionality (e.g. it uses the CP Subsystem to implement strongly consistent Lock and Counter data structures: `io.vertx.core.shareddata.Lock` and `io.vertx.core.shareddata.Counter`). +- `com.hazelcast:vertx-hazelcast-enterprise` — this module is built on top of `vertx-hazelcast` and leverages Hazelcast {enterprise-product-name} features to implement some of the cluster manager functionality. For example, it uses the CP Subsystem to implement strongly consistent Lock and Counter data structures: `io.vertx.core.shareddata.Lock` and `io.vertx.core.shareddata.Counter`. TIP: To learn how to add the vertx-hazelcast module and enable distributed session management, as well as how to implement a unique ID generator, see xref:get-started-with-vertx.adoc[Get started with Vert.x]. +== Compare editions + +The open source module `io.vertx:vertx-hazelcast` is based on an AP data structure, IMap. If you require consistency over availability, you will need to use the `com.hazelcast:vertx-hazelcast-enterprise` module, which is based on CP data structures in the xref:cp-subsystem:cp-subsystem.adoc[CP Subsystem]. This requires an {enterprise-product-name} license. + +TIP: You can request a trial license from link:https://hazelcast.com/get-started/[]. + +The following table lists the differences between the two modules. + +[cols="1a,1a,1a"] +|=== +|Feature|Hazelcast Vert.x OSS|Hazelcast Vert.x {enterprise-product-name} + +| Type of structures used +| AP +| CP + +| Lock +| Based on IMap +| Uses CP Semaphore + +| Counter +| Based on IMap value +| Uses CP IAtomicLong + +| Shared Map +| IMap +| IMap + +| Maven artifact +|`io.vertx`: `vertx-hazelcast` +|`com.hazelcast`: `vertx-hazelcast-enterprise` + +| License +| Free OSS, Apache 2.0 license +| Requires Hazelcast {enterprise-product-name} license + +|=== + +NOTE: SharedMap is implemented with IMap in both modules. Using CPMap would impact license costs and performance. You can still use CPMap directly using the Hazelcast API (not via Vert.x SharedData wrappers) if you have an {enterprise-product-name} license. + == Use Vert.x Hazelcast Enterprise Cluster Manager [.enterprise]*Enterprise*