From 5fbba9c2c73f9dcc0ae74b43d01d71d05c0ace5d Mon Sep 17 00:00:00 2001 From: Amanda Lindsay Date: Wed, 26 Nov 2025 12:49:49 +0000 Subject: [PATCH 01/18] DOC-556-2: wip --- .../pages/client-feature-comparison.adoc | 171 ++++++++++++++++++ 1 file changed, 171 insertions(+) create mode 100644 docs/modules/clients/pages/client-feature-comparison.adoc diff --git a/docs/modules/clients/pages/client-feature-comparison.adoc b/docs/modules/clients/pages/client-feature-comparison.adoc new file mode 100644 index 000000000..5179f0d90 --- /dev/null +++ b/docs/modules/clients/pages/client-feature-comparison.adoc @@ -0,0 +1,171 @@ += Client features overview +:description: Not all features are available in every client. The following provides an at-a-glance overview of what each client offers. + +{description} + +.Stream processing +[%collapsible] +==== +Applies to Java & Python Jet jobs only + +[cols="<15%,^10%,^10%,^10%,^10%,^10%,^10%", options="header"] +|=== +|[align=left]*Feature*|[align=center]*Java*|[align=center]*.NET*|[align=center]*C++*|[align=center]*Python*|[align=center]*Node.js*|[align=center]*Go* + +|Pipeline API +|icon:check-circle[size=lg,role=success] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|=== +==== + +// got to here + + + + + + +[cols="<15%,^10%,^10%,^10%,^10%,^10%,^10%,<25%", options="header"] +|=== +|[align=left]*Feature*|[align=center]*Java*|[align=center]*.NET*|[align=center]*C++*|[align=center]*Python*|[align=center]*Node.js*|[align=center]*Go*|[align=left]*Notes* + +|Stream processing +|icon:check-circle[size=lg,role=success] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|Java & Python Jet jobs only + +|Data structures +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:times[size=lg,role=error] +|some notes + +|Feature name +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:times[size=lg,role=error] +|some notes + +|Feature name +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:times[size=lg,role=error] +|some notes + +|Feature name +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:times[size=lg,role=error] +|some notes + +|Feature name +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:times[size=lg,role=error] +|some notes + +|Feature name +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:times[size=lg,role=error] +|some notes + +|Feature name +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:times[size=lg,role=error] +|some notes + +|Feature name +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:times[size=lg,role=error] +|some notes + +|Feature name +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:times[size=lg,role=error] +|some notes + +|Feature name +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:times[size=lg,role=error] +|some notes + +|Feature name +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:times[size=lg,role=error] +|some notes + +|Feature name +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:times[size=lg,role=error] +|some notes + + +|Feature name +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:times[size=lg,role=error] +|some notes + +|Feature name +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:times[size=lg,role=error] +|some notes +|=== From 00d71563c91afb99d58ba53925e22bfe0614f385 Mon Sep 17 00:00:00 2001 From: Amanda Lindsay Date: Wed, 26 Nov 2025 16:18:16 +0000 Subject: [PATCH 02/18] DOC-556-2: client feature table WIP --- .../pages/client-feature-comparison.adoc | 199 +++++++++++++----- 1 file changed, 149 insertions(+), 50 deletions(-) diff --git a/docs/modules/clients/pages/client-feature-comparison.adoc b/docs/modules/clients/pages/client-feature-comparison.adoc index 5179f0d90..fc32b5ea8 100644 --- a/docs/modules/clients/pages/client-feature-comparison.adoc +++ b/docs/modules/clients/pages/client-feature-comparison.adoc @@ -3,12 +3,14 @@ {description} +// Author's note: include an at-a-glance summary table here followed by the details + .Stream processing [%collapsible] ==== -Applies to Java & Python Jet jobs only +Applies to Java and Python Jet jobs only -[cols="<15%,^10%,^10%,^10%,^10%,^10%,^10%", options="header"] +[cols="<40%,^10%,^10%,^10%,^10%,^10%,^10%", options="header"] |=== |[align=left]*Feature*|[align=center]*Java*|[align=center]*.NET*|[align=center]*C++*|[align=center]*Python*|[align=center]*Node.js*|[align=center]*Go* @@ -22,150 +24,247 @@ Applies to Java & Python Jet jobs only |=== ==== -// got to here - - - +.Data structures +[%collapsible] +==== +Hazelcast offers distributed implementations of many common data structures. For each of the client languages, Hazelcast mimics as closely as possible the natural interface of the structure. xref:data-structures:distributed-data-structures.adoc [Learn more]. +[cols="<40%,^10%,^10%,^10%,^10%,^10%,^10%", options="header"] +|=== +|[align=left]*Feature*|[align=center]*Java*|[align=center]*.NET*|[align=center]*C++*|[align=center]*Python*|[align=center]*Node.js*|[align=center]*Go* +|Map +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] -[cols="<15%,^10%,^10%,^10%,^10%,^10%,^10%,<25%", options="header"] -|=== -|[align=left]*Feature*|[align=center]*Java*|[align=center]*.NET*|[align=center]*C++*|[align=center]*Python*|[align=center]*Node.js*|[align=center]*Go*|[align=left]*Notes* +|Queue +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] -|Stream processing +|Set +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|Java & Python Jet jobs only -|Data structures +|List +|icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] -|icon:times[size=lg,role=error] -|some notes -|Feature name +|MultiMap +|icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] -|icon:times[size=lg,role=error] -|some notes -|Feature name +|Replicated Map +|icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] -|icon:times[size=lg,role=error] -|some notes -|Feature name +|Ringbuffer +|icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] + +|Topic +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] |icon:times[size=lg,role=error] -|some notes +|icon:check-circle[size=lg,role=success] -|Feature name +|Reliable Topic |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:times[size=lg,role=error] -|some notes -|Feature name +|Jcache |icon:check-circle[size=lg,role=success] +|N/A +|N/A +|N/A +|N/A +|N/A + +|Cardinality Estimator |icon:check-circle[size=lg,role=success] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|=== +==== + +.Concurrency primitives +[%collapsible] +==== +Data structures in the CP subsystem always maintain linearizability and prefer consistency over availability during network partitions. These data structures are CP with respect to the CAP theorem. xref:cp-subsystem:cp-subsystem.adoc#cp-data-structures[Learn more]. + +[cols="<40%,^10%,^10%,^10%,^10%,^10%,^10%", options="header"] +|=== +|[align=left]*Feature*|[align=center]*Java*|[align=center]*.NET*|[align=center]*C++*|[align=center]*Python*|[align=center]*Node.js*|[align=center]*Go* + +|Semaphore +|icon:check-circle[size=lg,role=success] +|icon:times[size=lg,role=error] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:times[size=lg,role=error] -|some notes -|Feature name +|Fenced Lock |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:times[size=lg,role=error] -|some notes -|Feature name +|AtomicLong +|icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] -|icon:times[size=lg,role=error] -|some notes -|Feature name +|AtomicReference +|icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] -|icon:times[size=lg,role=error] -|some notes -|Feature name +|CountDownLatch |icon:check-circle[size=lg,role=success] +|icon:times[size=lg,role=error] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] +|icon:times[size=lg,role=error] + +|CRDT PN Counter |icon:check-circle[size=lg,role=success] |icon:times[size=lg,role=error] -|some notes +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] -|Feature name +|Flake ID Generator +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] +|=== +==== + +.Distributed processing +[%collapsible] +==== +Distributed computing is the process of running computational tasks on different cluster members. xref:computing:distributed-computing.adoc [Learn more]. + +[cols="<40%,^10%,^10%,^10%,^10%,^10%,^10%", options="header"] +|=== +|[align=left]*Feature*|[align=center]*Java*|[align=center]*.NET*|[align=center]*C++*|[align=center]*Python*|[align=center]*Node.js*|[align=center]*Go* + +|Distributed Executor Service +|icon:check-circle[size=lg,role=success] +|icon:times[size=lg,role=error] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:times[size=lg,role=error] -|some notes +|icon:times[size=lg,role=error] -|Feature name +|Entry Processor |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] -|icon:times[size=lg,role=error] -|some notes +|icon:check-circle[size=lg,role=success] +|=== +==== + +.Transactions +[%collapsible] +==== +Applies to Java and Python Jet jobs only +[cols="<40%,^10%,^10%,^10%,^10%,^10%,^10%", options="header"] +|=== +|[align=left]*Feature*|[align=center]*Java*|[align=center]*.NET*|[align=center]*C++*|[align=center]*Python*|[align=center]*Node.js*|[align=center]*Go* -|Feature name +|TxnMap |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] + +|TxnMultiMap +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:times[size=lg,role=error] -|some notes +|icon:times[size=lg,role=error] -|Feature name +|TxnQueue |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] + +|TxnList +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] + +|TxnSet +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:times[size=lg,role=error] -|some notes +|icon:times[size=lg,role=error] |=== +==== + From 0998420ddf5068edd92828b34d0e40155f95b156 Mon Sep 17 00:00:00 2001 From: Amanda Lindsay Date: Thu, 27 Nov 2025 14:18:42 +0000 Subject: [PATCH 03/18] DOC-556-2: client feature table WIP --- .../pages/client-feature-comparison.adoc | 396 +++++++++++++++++- 1 file changed, 395 insertions(+), 1 deletion(-) diff --git a/docs/modules/clients/pages/client-feature-comparison.adoc b/docs/modules/clients/pages/client-feature-comparison.adoc index fc32b5ea8..ba41c85e2 100644 --- a/docs/modules/clients/pages/client-feature-comparison.adoc +++ b/docs/modules/clients/pages/client-feature-comparison.adoc @@ -3,7 +3,7 @@ {description} -// Author's note: include an at-a-glance summary table here followed by the details +// Author's note: include an at-a-glance summary table here followed by the details, and tweak description accordingly .Stream processing [%collapsible] @@ -268,3 +268,397 @@ Applies to Java and Python Jet jobs only |=== ==== +.Query +[%collapsible] +==== +You can use SQL to run optimized distributed queries on the keys and values of maps in a local cluster. xref:sql:querying-maps-sql.adoc [Learn more]. + +[cols="<40%,^10%,^10%,^10%,^10%,^10%,^10%", options="header"] +|=== +|[align=left]*Feature*|[align=center]*Java*|[align=center]*.NET*|[align=center]*C++*|[align=center]*Python*|[align=center]*Node.js*|[align=center]*Go* + +|SQL +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:times[size=lg,role=error] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] + +|SQL Query Re-Submission +|icon:check-circle[size=lg,role=success] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] + +|Query (Predicates) +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] + +|Paging predicate +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:times[size=lg,role=error] + +|Partition predicate +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] + +|Built-in Predicates +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] + +|Continuous Query Caching +|icon:check-circle[size=lg,role=success] +|N/A +|N/A +|N/A +|N/A +|N/A + +|Listener with predicate +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] + +|Projections +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:times[size=lg,role=error] +|icon:check-circle[size=lg,role=success] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] + +|Aggregations +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:times[size=lg,role=error] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|=== +==== + +.Near Cache +[%collapsible] +==== +Near Cache is highly recommended for data structures that are mostly read. xref:cluster-performance:best-practices.adoc [Learn more]. + +[cols="<40%,^10%,^10%,^10%,^10%,^10%,^10%", options="header"] +|=== +|[align=left]*Feature*|[align=center]*Java*|[align=center]*.NET*|[align=center]*C++*|[align=center]*Python*|[align=center]*Node.js*|[align=center]*Go* + +|Near Cache support +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] + +|HD Memory +|icon:check-circle[size=lg,role=success] +|N/A +|N/A +|N/A +|N/A +|N/A + +|Preload cache from last used +|icon:check-circle[size=lg,role=success] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] + +|Eventual Consistency Control +|icon:check-circle[size=lg,role=success] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:check-circle[size=lg,role=success] +|=== +==== + +.Configuration +[%collapsible] +==== +You can configure a Hazelcast cluster or client using either static or dynamic configuration. xref:data-structures:distributed-data-structures.adoc [Learn more]. + +[cols="<40%,^10%,^10%,^10%,^10%,^10%,^10%", options="header"] +|=== +|[align=left]*Feature*|[align=center]*Java*|[align=center]*.NET*|[align=center]*C++*|[align=center]*Python*|[align=center]*Node.js*|[align=center]*Go* + +|Declarative Configuration (XML/JSON/YAML) +|icon:check-circle[size=lg,role=success] (XML/YAML) +|icon:check-circle[size=lg,role=success] (JSON) +|icon:times[size=lg,role=error] +|icon:check-circle[size=lg,role=success] (Dictionary objects as config) +|icon:check-circle[size=lg,role=success] (JSON objects as config) +|icon:check-circle[size=lg,role=success] (JSON/YAML/TOML) + +|Programmatic Configuration +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] + +|Client Configuration Import +|icon:check-circle[size=lg,role=success] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] + +|Fail Fast on Invalid Configuration +|icon:check-circle[size=lg,role=success] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] + +|Dynamic Configuration +|icon:check-circle[size=lg,role=success] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|=== +==== + +.Security +[%collapsible] +==== +These features allow you to perform security activities, such as intercepting socket connections and remote operations executed by the clients, encrypting the communications between the members at socket level and using SSL socket communication. xref:security:overview.adoc [Learn more]. + +[cols="<40%,^10%,^10%,^10%,^10%,^10%,^10%", options="header"] +|=== +|[align=left]*Feature*|[align=center]*Java*|[align=center]*.NET*|[align=center]*C++*|[align=center]*Python*|[align=center]*Node.js*|[align=center]*Go* + +|SSL Support +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] + +|XA Transactions +|icon:check-circle[size=lg,role=success] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] + +|Mutual Authentication +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] + +|Authorization +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] + +|Custom Authentication Modules +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:times[size=lg,role=error] + +|Token-based credentials +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:times[size=lg,role=error] + +|Kerberos authentication +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:times[size=lg,role=error] +|icon:check-circle[size=lg,role=success] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|=== +==== + +.Cloud +[%collapsible] +==== +Deploy a Hazelcast cluster in cloud environments including Hazelcast Viridian Managed Services, Amazon AWS, Google Cloud Platform, and Azure. xref:deploy:deploying-in-cloud.adoc [Learn more]. + +[cols="<40%,^10%,^10%,^10%,^10%,^10%,^10%", options="header"] +|=== +|[align=left]*Feature*|[align=center]*Java*|[align=center]*.NET*|[align=center]*C++*|[align=center]*Python*|[align=center]*Node.js*|[align=center]*Go* + +|Hazelcast Cloud +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] + +|Kubernetes +|icon:check-circle[size=lg,role=success] +|icon:times[size=lg,role=error] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] + +|AWS +|icon:check-circle[size=lg,role=success] +|icon:times[size=lg,role=error] +|icon:check-circle[size=lg,role=success] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] + +|Azure +|icon:check-circle[size=lg,role=success] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] + +|Google Cloud Platform +|icon:check-circle[size=lg,role=success] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] + +|Pivotal Cloud Foundry +|icon:check-circle[size=lg,role=success] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] + +|Docker +|icon:check-circle[size=lg,role=success] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] + +|Apache jclouds +|icon:check-circle[size=lg,role=success] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] + +|Consul +|icon:check-circle[size=lg,role=success] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] + +|etcd +|icon:check-circle[size=lg,role=success] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] + +|Eureka +|icon:check-circle[size=lg,role=success] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] + +|Heroku +|icon:check-circle[size=lg,role=success] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] + +|Zookeeper +|icon:check-circle[size=lg,role=success] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|=== +==== + +.Networking +[%collapsible] +==== + +[cols="<40%,^10%,^10%,^10%,^10%,^10%,^10%", options="header"] +|=== +|[align=left]*Feature*|[align=center]*Java*|[align=center]*.NET*|[align=center]*C++*|[align=center]*Python*|[align=center]*Node.js*|[align=center]*Go* + +|Unisocket client +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] + +|Smart client +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|=== +==== + + From 7950be4f89cf98c7d50615adbfad4e61e48a416a Mon Sep 17 00:00:00 2001 From: Amanda Lindsay Date: Thu, 27 Nov 2025 15:39:46 +0000 Subject: [PATCH 04/18] DOC-556-2: client feature table --- .../pages/client-feature-comparison.adoc | 207 +++++++++++++++++- 1 file changed, 199 insertions(+), 8 deletions(-) diff --git a/docs/modules/clients/pages/client-feature-comparison.adoc b/docs/modules/clients/pages/client-feature-comparison.adoc index ba41c85e2..15ee34af4 100644 --- a/docs/modules/clients/pages/client-feature-comparison.adoc +++ b/docs/modules/clients/pages/client-feature-comparison.adoc @@ -27,7 +27,7 @@ Applies to Java and Python Jet jobs only .Data structures [%collapsible] ==== -Hazelcast offers distributed implementations of many common data structures. For each of the client languages, Hazelcast mimics as closely as possible the natural interface of the structure. xref:data-structures:distributed-data-structures.adoc [Learn more]. +Hazelcast offers distributed implementations of many common data structures. For each of the client languages, Hazelcast mimics as closely as possible the natural interface of the structure. xref:data-structures:distributed-data-structures.adoc[Learn more]. [cols="<40%,^10%,^10%,^10%,^10%,^10%,^10%", options="header"] |=== @@ -193,7 +193,7 @@ Data structures in the CP subsystem always maintain linearizability and prefer c .Distributed processing [%collapsible] ==== -Distributed computing is the process of running computational tasks on different cluster members. xref:computing:distributed-computing.adoc [Learn more]. +Distributed computing is the process of running computational tasks on different cluster members. xref:computing:distributed-computing.adoc[Learn more]. [cols="<40%,^10%,^10%,^10%,^10%,^10%,^10%", options="header"] |=== @@ -220,7 +220,7 @@ Distributed computing is the process of running computational tasks on different .Transactions [%collapsible] ==== -Applies to Java and Python Jet jobs only +You create a `TransactionContext` object to begin, commit and rollback a transaction. You can obtain transaction-aware instances of queues, maps, sets, lists and multimaps via `TransactionContext`, work with them and commit/rollback in one shot. xref:transactions:creating-a-transaction-interface.adoc[Learn more]. [cols="<40%,^10%,^10%,^10%,^10%,^10%,^10%", options="header"] |=== @@ -271,7 +271,7 @@ Applies to Java and Python Jet jobs only .Query [%collapsible] ==== -You can use SQL to run optimized distributed queries on the keys and values of maps in a local cluster. xref:sql:querying-maps-sql.adoc [Learn more]. +You can use SQL to run optimized distributed queries on the keys and values of maps in a local cluster. xref:sql:querying-maps-sql.adoc[Learn more]. [cols="<40%,^10%,^10%,^10%,^10%,^10%,^10%", options="header"] |=== @@ -362,7 +362,7 @@ You can use SQL to run optimized distributed queries on the keys and values of m .Near Cache [%collapsible] ==== -Near Cache is highly recommended for data structures that are mostly read. xref:cluster-performance:best-practices.adoc [Learn more]. +Near Cache is highly recommended for data structures that are mostly read. xref:cluster-performance:best-practices.adoc[Learn more]. [cols="<40%,^10%,^10%,^10%,^10%,^10%,^10%", options="header"] |=== @@ -405,7 +405,7 @@ Near Cache is highly recommended for data structures that are mostly read. xref: .Configuration [%collapsible] ==== -You can configure a Hazelcast cluster or client using either static or dynamic configuration. xref:data-structures:distributed-data-structures.adoc [Learn more]. +You can configure a Hazelcast cluster or client using either static or dynamic configuration. xref:data-structures:distributed-data-structures.adoc[Learn more]. [cols="<40%,^10%,^10%,^10%,^10%,^10%,^10%", options="header"] |=== @@ -456,7 +456,7 @@ You can configure a Hazelcast cluster or client using either static or dynamic c .Security [%collapsible] ==== -These features allow you to perform security activities, such as intercepting socket connections and remote operations executed by the clients, encrypting the communications between the members at socket level and using SSL socket communication. xref:security:overview.adoc [Learn more]. +These features allow you to perform security activities, such as intercepting socket connections and remote operations executed by the clients, encrypting the communications between the members at socket level and using SSL socket communication. xref:security:overview.adoc[Learn more]. [cols="<40%,^10%,^10%,^10%,^10%,^10%,^10%", options="header"] |=== @@ -523,7 +523,7 @@ These features allow you to perform security activities, such as intercepting so .Cloud [%collapsible] ==== -Deploy a Hazelcast cluster in cloud environments including Hazelcast Viridian Managed Services, Amazon AWS, Google Cloud Platform, and Azure. xref:deploy:deploying-in-cloud.adoc [Learn more]. +Deploy a Hazelcast cluster in cloud environments including Hazelcast Viridian Managed Services, Amazon AWS, Google Cloud Platform, and Azure. xref:deploy:deploying-in-cloud.adoc[Learn more]. [cols="<40%,^10%,^10%,^10%,^10%,^10%,^10%", options="header"] |=== @@ -661,4 +661,195 @@ Deploy a Hazelcast cluster in cloud environments including Hazelcast Viridian Ma |=== ==== +.Event listeners +[%collapsible] +==== +You can register for Hazelcast entry events so you are notified when those events occur. xref:events:distributed-events.adoc[Learn more]. + +[cols="<40%,^10%,^10%,^10%,^10%,^10%,^10%", options="header"] +|=== +|[align=left]*Feature*|[align=center]*Java*|[align=center]*.NET*|[align=center]*C++*|[align=center]*Python*|[align=center]*Node.js*|[align=center]*Go* + +|Lifecycle listener +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] + +|Event listeners +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] + +|Sub-listener interfaces for map listener +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|=== +==== + +.Monitoring +[%collapsible] +==== +Hazelcast offers an extended set of diagnostics plugins for both Hazelcast members and clients. xref:maintain-cluster:monitoring.adoc#diagnostics[Learn more]. + +[cols="<40%,^10%,^10%,^10%,^10%,^10%,^10%", options="header"] +|=== +|[align=left]*Feature*|[align=center]*Java*|[align=center]*.NET*|[align=center]*C++*|[align=center]*Python*|[align=center]*Node.js*|[align=center]*Go* + +|Diagnostics +|icon:check-circle[size=lg,role=success] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] + +|Client-side statistics +|icon:check-circle[size=lg,role=success] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] + +|Client Near Cache stats +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:times[size=lg,role=error] + +|Client runtime stats +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:times[size=lg,role=error] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] + +|Client operating systems stats +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:times[size=lg,role=error] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|=== +==== + +.Serialization +[%collapsible] +==== +For data to be sent over a network between cluster members and/or clients, it needs to be serialized into raw bytes. Hazelcast has many serialization options to choose from, depending on what you plan on doing with your data. xref:serialization:serialization.adoc[Learn more]. + +[cols="<40%,^10%,^10%,^10%,^10%,^10%,^10%", options="header"] +|=== +|[align=left]*Feature*|[align=center]*Java*|[align=center]*.NET*|[align=center]*C++*|[align=center]*Python*|[align=center]*Node.js*|[align=center]*Go* + +|Compact serialization +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] + +|Portable serialization +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] + +|IdentifiedDataSerializable +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] + +|JSON (HazelcastJsonValue) +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] + +|DataSerializable +|icon:check-circle[size=lg,role=success] +|N/A +|N/A +|N/A +|N/A +|N/A + +|Custom serializers +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] + +|Global serializers +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|=== +==== + +.Client connectivity +[%collapsible] +==== +By default, members allow connections from any Hazelcast client. So, any client with access to a member can connect to the cluster and use its resources. xref:getting-started:authenticate-client-tutorial.adoc[Learn more]. + +[cols="<40%,^10%,^10%,^10%,^10%,^10%,^10%", options="header"] +|=== +|[align=left]*Feature*|[align=center]*Java*|[align=center]*.NET*|[align=center]*C++*|[align=center]*Python*|[align=center]*Node.js*|[align=center]*Go* + +|Connection strategy +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] + +|Connection retry +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] + +|Blue/green deployments and disaster recovery +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|=== +==== + + + + From f860129db09dd02e18b2d40f65c2e949e936960d Mon Sep 17 00:00:00 2001 From: Amanda Lindsay Date: Thu, 27 Nov 2025 16:27:20 +0000 Subject: [PATCH 05/18] DOC-556-2: add to nav --- docs/modules/ROOT/nav.adoc | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/modules/ROOT/nav.adoc b/docs/modules/ROOT/nav.adoc index 59a04711d..405fddc5e 100644 --- a/docs/modules/ROOT/nav.adoc +++ b/docs/modules/ROOT/nav.adoc @@ -506,6 +506,7 @@ .Clients and APIs * xref:clients:client-overview.adoc[Overview] +** xref:clients:client-feature-comparison.adoc[] ** xref:clients:client-protocol.adoc[] * Clients ** xref:clients:java.adoc[] From d3edc106aec86c239aeb782fcd1c12e53d8e430a Mon Sep 17 00:00:00 2001 From: Amanda Lindsay Date: Thu, 27 Nov 2025 17:00:25 +0000 Subject: [PATCH 06/18] DOC-556-2: fix links --- docs/modules/clients/pages/client-feature-comparison.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/modules/clients/pages/client-feature-comparison.adoc b/docs/modules/clients/pages/client-feature-comparison.adoc index 15ee34af4..0304bfb10 100644 --- a/docs/modules/clients/pages/client-feature-comparison.adoc +++ b/docs/modules/clients/pages/client-feature-comparison.adoc @@ -362,7 +362,7 @@ You can use SQL to run optimized distributed queries on the keys and values of m .Near Cache [%collapsible] ==== -Near Cache is highly recommended for data structures that are mostly read. xref:cluster-performance:best-practices.adoc[Learn more]. +Near Cache is highly recommended for data structures that are mostly read. xref:cluster-performance:near-cache.adoc[Learn more]. [cols="<40%,^10%,^10%,^10%,^10%,^10%,^10%", options="header"] |=== @@ -405,7 +405,7 @@ Near Cache is highly recommended for data structures that are mostly read. xref: .Configuration [%collapsible] ==== -You can configure a Hazelcast cluster or client using either static or dynamic configuration. xref:data-structures:distributed-data-structures.adoc[Learn more]. +You can configure a Hazelcast cluster or client using either static or dynamic configuration. xref:configuration:understanding-configuration.adoc[Learn more]. [cols="<40%,^10%,^10%,^10%,^10%,^10%,^10%", options="header"] |=== From 515c1e4ff491479e5d032da329fe9eea43d7fc4a Mon Sep 17 00:00:00 2001 From: Amanda Lindsay Date: Mon, 1 Dec 2025 15:23:23 +0000 Subject: [PATCH 07/18] DOC-556-2: add at a glance table, WIP --- .../pages/client-feature-comparison.adoc | 130 +++++++++++++++++- 1 file changed, 128 insertions(+), 2 deletions(-) diff --git a/docs/modules/clients/pages/client-feature-comparison.adoc b/docs/modules/clients/pages/client-feature-comparison.adoc index 0304bfb10..3a3d643d3 100644 --- a/docs/modules/clients/pages/client-feature-comparison.adoc +++ b/docs/modules/clients/pages/client-feature-comparison.adoc @@ -1,9 +1,135 @@ = Client features overview -:description: Not all features are available in every client. The following provides an at-a-glance overview of what each client offers. +:description: Not all features are available in every client. The following provides an at-a-glance overview of what each client offers, and a detailed list of specific features. {description} -// Author's note: include an at-a-glance summary table here followed by the details, and tweak description accordingly +==== +Client features at a glance +[cols="<40%,^10%,^10%,^10%,^10%,^10%,^10%", options="header"] +|=== +|[align=left]*Feature*|[align=center]*Java*|[align=center]*.NET*|[align=center]*C++*|[align=center]*Python*|[align=center]*Node.js*|[align=center]*Go* + +|Stream processing +|icon:check-circle[size=lg,role=success] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] + +|Data structures +|icon:check-circle[size=lg,role=success] +|icon:circle-half-stroke[size=lg,role=partial] +|partial support +|partial support +|partial support +|partial support + +|Concurrency primitives +|icon:check-circle[size=lg,role=success] +|partial support +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|partial support + +|Distributed processing +|icon:check-circle[size=lg,role=success] +|partial support +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|partial support +|partial support + +|Transactions +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:times[size=lg,role=error] +|icon:times[size=lg,role=error] + +|Query +|icon:check-circle[size=lg,role=success] +|partial support +|partial support +|partial support +|partial support +|partial support + +|Near Cache +|icon:check-circle[size=lg,role=success] +|partial support +|partial support +|partial support +|partial support +|partial support + +|Configuration +|icon:check-circle[size=lg,role=success] +|partial support +|partial support +|partial support +|partial support +|partial support + +|Security +|icon:check-circle[size=lg,role=success] +|partial support +|partial support +|partial support +|partial support +|partial support + +|Cloud +|icon:check-circle[size=lg,role=success] +|partial support +|partial support +|partial support +|partial support +|partial support + +|Networking +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] + +|Event listeners +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] + +|Monitoring +|icon:check-circle[size=lg,role=success] +|partial support +|partial support +|partial support +|partial support +|partial support + +|Serialization +|icon:check-circle[size=lg,role=success] +|partial support +|partial support +|partial support +|partial support +|partial support + +|Client connectivity +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|partial support +|partial support +|icon:check-circle[size=lg,role=success] +|icon:check-circle[size=lg,role=success] +|=== +==== .Stream processing [%collapsible] From 2d5dd18e7fbb29af9625b41ed1c71f448363de55 Mon Sep 17 00:00:00 2001 From: Amanda Lindsay Date: Tue, 2 Dec 2025 09:51:33 +0000 Subject: [PATCH 08/18] DOC-556-2: adjust icon colour --- docs/modules/clients/pages/client-feature-comparison.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/modules/clients/pages/client-feature-comparison.adoc b/docs/modules/clients/pages/client-feature-comparison.adoc index 3a3d643d3..f8e412fc3 100644 --- a/docs/modules/clients/pages/client-feature-comparison.adoc +++ b/docs/modules/clients/pages/client-feature-comparison.adoc @@ -19,7 +19,7 @@ Client features at a glance |Data structures |icon:check-circle[size=lg,role=success] -|icon:circle-half-stroke[size=lg,role=partial] +|icon:circle-half-stroke[size=lg,role=Yellow] |partial support |partial support |partial support From eb28eec04312856503ad1c7f20786f32fa6a8233 Mon Sep 17 00:00:00 2001 From: Amanda Lindsay Date: Tue, 2 Dec 2025 10:12:49 +0000 Subject: [PATCH 09/18] DOC-556-2: adjust icon colour --- docs/modules/clients/pages/client-feature-comparison.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/modules/clients/pages/client-feature-comparison.adoc b/docs/modules/clients/pages/client-feature-comparison.adoc index f8e412fc3..c15735bdb 100644 --- a/docs/modules/clients/pages/client-feature-comparison.adoc +++ b/docs/modules/clients/pages/client-feature-comparison.adoc @@ -19,7 +19,7 @@ Client features at a glance |Data structures |icon:check-circle[size=lg,role=success] -|icon:circle-half-stroke[size=lg,role=Yellow] +|icon:circle-half-stroke[size=lg,role=warning] |partial support |partial support |partial support From a40d21673fd0525fc74b55451d948785a3a07bc5 Mon Sep 17 00:00:00 2001 From: Amanda Lindsay Date: Tue, 2 Dec 2025 10:44:00 +0000 Subject: [PATCH 10/18] DOC-556-2: update partial support icons --- .../pages/client-feature-comparison.adoc | 92 +++++++++---------- 1 file changed, 46 insertions(+), 46 deletions(-) diff --git a/docs/modules/clients/pages/client-feature-comparison.adoc b/docs/modules/clients/pages/client-feature-comparison.adoc index c15735bdb..c2939e5c0 100644 --- a/docs/modules/clients/pages/client-feature-comparison.adoc +++ b/docs/modules/clients/pages/client-feature-comparison.adoc @@ -20,26 +20,26 @@ Client features at a glance |Data structures |icon:check-circle[size=lg,role=success] |icon:circle-half-stroke[size=lg,role=warning] -|partial support -|partial support -|partial support -|partial support +|icon:circle-half-stroke[size=lg,role=warning] +|icon:circle-half-stroke[size=lg,role=warning] +|icon:circle-half-stroke[size=lg,role=warning] +|icon:circle-half-stroke[size=lg,role=warning] |Concurrency primitives |icon:check-circle[size=lg,role=success] -|partial support +|icon:circle-half-stroke[size=lg,role=warning] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] -|partial support +|icon:circle-half-stroke[size=lg,role=warning] |Distributed processing |icon:check-circle[size=lg,role=success] -|partial support +|icon:circle-half-stroke[size=lg,role=warning] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] -|partial support -|partial support +|icon:circle-half-stroke[size=lg,role=warning] +|icon:circle-half-stroke[size=lg,role=warning] |Transactions |icon:check-circle[size=lg,role=success] @@ -51,43 +51,43 @@ Client features at a glance |Query |icon:check-circle[size=lg,role=success] -|partial support -|partial support -|partial support -|partial support -|partial support +|icon:circle-half-stroke[size=lg,role=warning] +|icon:circle-half-stroke[size=lg,role=warning] +|icon:circle-half-stroke[size=lg,role=warning] +|icon:circle-half-stroke[size=lg,role=warning] +|icon:circle-half-stroke[size=lg,role=warning] |Near Cache |icon:check-circle[size=lg,role=success] -|partial support -|partial support -|partial support -|partial support -|partial support +|icon:circle-half-stroke[size=lg,role=warning] +|icon:circle-half-stroke[size=lg,role=warning] +|icon:circle-half-stroke[size=lg,role=warning] +|icon:circle-half-stroke[size=lg,role=warning] +|icon:circle-half-stroke[size=lg,role=warning] |Configuration |icon:check-circle[size=lg,role=success] -|partial support -|partial support -|partial support -|partial support -|partial support +|icon:circle-half-stroke[size=lg,role=warning] +|icon:circle-half-stroke[size=lg,role=warning] +|icon:circle-half-stroke[size=lg,role=warning] +|icon:circle-half-stroke[size=lg,role=warning] +|icon:circle-half-stroke[size=lg,role=warning] |Security |icon:check-circle[size=lg,role=success] -|partial support -|partial support -|partial support -|partial support -|partial support +|icon:circle-half-stroke[size=lg,role=warning] +|icon:circle-half-stroke[size=lg,role=warning] +|icon:circle-half-stroke[size=lg,role=warning] +|icon:circle-half-stroke[size=lg,role=warning] +|icon:circle-half-stroke[size=lg,role=warning] |Cloud |icon:check-circle[size=lg,role=success] -|partial support -|partial support -|partial support -|partial support -|partial support +|icon:circle-half-stroke[size=lg,role=warning] +|icon:circle-half-stroke[size=lg,role=warning] +|icon:circle-half-stroke[size=lg,role=warning] +|icon:circle-half-stroke[size=lg,role=warning] +|icon:circle-half-stroke[size=lg,role=warning] |Networking |icon:check-circle[size=lg,role=success] @@ -107,25 +107,25 @@ Client features at a glance |Monitoring |icon:check-circle[size=lg,role=success] -|partial support -|partial support -|partial support -|partial support -|partial support +|icon:circle-half-stroke[size=lg,role=warning] +|icon:circle-half-stroke[size=lg,role=warning] +|icon:circle-half-stroke[size=lg,role=warning] +|icon:circle-half-stroke[size=lg,role=warning] +|icon:circle-half-stroke[size=lg,role=warning] |Serialization |icon:check-circle[size=lg,role=success] -|partial support -|partial support -|partial support -|partial support -|partial support +|icon:circle-half-stroke[size=lg,role=warning] +|icon:circle-half-stroke[size=lg,role=warning] +|icon:circle-half-stroke[size=lg,role=warning] +|icon:circle-half-stroke[size=lg,role=warning] +|icon:circle-half-stroke[size=lg,role=warning] |Client connectivity |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] -|partial support -|partial support +|icon:circle-half-stroke[size=lg,role=warning] +|icon:circle-half-stroke[size=lg,role=warning] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |=== From 89efcf9399304cf35ca1df80f07780cbfbfc07a6 Mon Sep 17 00:00:00 2001 From: Amanda Lindsay Date: Tue, 2 Dec 2025 13:16:14 +0000 Subject: [PATCH 11/18] DOC-556-2: swapped x icon --- .../pages/client-feature-comparison.adoc | 312 +++++++++--------- 1 file changed, 156 insertions(+), 156 deletions(-) diff --git a/docs/modules/clients/pages/client-feature-comparison.adoc b/docs/modules/clients/pages/client-feature-comparison.adoc index c2939e5c0..7a09820b0 100644 --- a/docs/modules/clients/pages/client-feature-comparison.adoc +++ b/docs/modules/clients/pages/client-feature-comparison.adoc @@ -4,18 +4,18 @@ {description} ==== -Client features at a glance +*Client features at a glance* [cols="<40%,^10%,^10%,^10%,^10%,^10%,^10%", options="header"] |=== |[align=left]*Feature*|[align=center]*Java*|[align=center]*.NET*|[align=center]*C++*|[align=center]*Python*|[align=center]*Node.js*|[align=center]*Go* |Stream processing |icon:check-circle[size=lg,role=success] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] |Data structures |icon:check-circle[size=lg,role=success] @@ -46,8 +46,8 @@ Client features at a glance |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] |Query |icon:check-circle[size=lg,role=success] @@ -142,11 +142,11 @@ Applies to Java and Python Jet jobs only |Pipeline API |icon:check-circle[size=lg,role=success] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] |=== ==== @@ -220,7 +220,7 @@ Hazelcast offers distributed implementations of many common data structures. For |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] -|icon:times[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] |icon:check-circle[size=lg,role=success] |Reliable Topic @@ -229,7 +229,7 @@ Hazelcast offers distributed implementations of many common data structures. For |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] -|icon:times[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] |Jcache |icon:check-circle[size=lg,role=success] @@ -241,11 +241,11 @@ Hazelcast offers distributed implementations of many common data structures. For |Cardinality Estimator |icon:check-circle[size=lg,role=success] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] |=== ==== @@ -260,11 +260,11 @@ Data structures in the CP subsystem always maintain linearizability and prefer c |Semaphore |icon:check-circle[size=lg,role=success] -|icon:times[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] -|icon:times[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] |Fenced Lock |icon:check-circle[size=lg,role=success] @@ -272,7 +272,7 @@ Data structures in the CP subsystem always maintain linearizability and prefer c |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] -|icon:times[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] |AtomicLong |icon:check-circle[size=lg,role=success] @@ -292,15 +292,15 @@ Data structures in the CP subsystem always maintain linearizability and prefer c |CountDownLatch |icon:check-circle[size=lg,role=success] -|icon:times[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] -|icon:times[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] |CRDT PN Counter |icon:check-circle[size=lg,role=success] -|icon:times[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] @@ -327,11 +327,11 @@ Distributed computing is the process of running computational tasks on different |Distributed Executor Service |icon:check-circle[size=lg,role=success] -|icon:times[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] |Entry Processor |icon:check-circle[size=lg,role=success] @@ -357,40 +357,40 @@ You create a `TransactionContext` object to begin, commit and rollback a transac |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] |TxnMultiMap |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] |TxnQueue |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] |TxnList |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] |TxnSet |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] |=== ==== @@ -406,18 +406,18 @@ You can use SQL to run optimized distributed queries on the keys and values of m |SQL |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] -|icon:times[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |SQL Query Re-Submission |icon:check-circle[size=lg,role=success] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] |Query (Predicates) |icon:check-circle[size=lg,role=success] @@ -433,15 +433,15 @@ You can use SQL to run optimized distributed queries on the keys and values of m |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] -|icon:times[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] |Partition predicate |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] |Built-in Predicates |icon:check-circle[size=lg,role=success] @@ -470,15 +470,15 @@ You can use SQL to run optimized distributed queries on the keys and values of m |Projections |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] -|icon:times[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] |icon:check-circle[size=lg,role=success] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] |Aggregations |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] -|icon:times[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] @@ -512,18 +512,18 @@ Near Cache is highly recommended for data structures that are mostly read. xref: |Preload cache from last used |icon:check-circle[size=lg,role=success] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] |Eventual Consistency Control |icon:check-circle[size=lg,role=success] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] |icon:check-circle[size=lg,role=success] |=== ==== @@ -540,7 +540,7 @@ You can configure a Hazelcast cluster or client using either static or dynamic c |Declarative Configuration (XML/JSON/YAML) |icon:check-circle[size=lg,role=success] (XML/YAML) |icon:check-circle[size=lg,role=success] (JSON) -|icon:times[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] |icon:check-circle[size=lg,role=success] (Dictionary objects as config) |icon:check-circle[size=lg,role=success] (JSON objects as config) |icon:check-circle[size=lg,role=success] (JSON/YAML/TOML) @@ -555,27 +555,27 @@ You can configure a Hazelcast cluster or client using either static or dynamic c |Client Configuration Import |icon:check-circle[size=lg,role=success] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] |Fail Fast on Invalid Configuration |icon:check-circle[size=lg,role=success] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |Dynamic Configuration |icon:check-circle[size=lg,role=success] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] |=== ==== @@ -598,11 +598,11 @@ These features allow you to perform security activities, such as intercepting so |XA Transactions |icon:check-circle[size=lg,role=success] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] |Mutual Authentication |icon:check-circle[size=lg,role=success] @@ -626,7 +626,7 @@ These features allow you to perform security activities, such as intercepting so |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] -|icon:times[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] |Token-based credentials |icon:check-circle[size=lg,role=success] @@ -634,15 +634,15 @@ These features allow you to perform security activities, such as intercepting so |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] -|icon:times[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] |Kerberos authentication |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] -|icon:times[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] |icon:check-circle[size=lg,role=success] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] |=== ==== @@ -665,7 +665,7 @@ Deploy a Hazelcast cluster in cloud environments including Hazelcast Viridian Ma |Kubernetes |icon:check-circle[size=lg,role=success] -|icon:times[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] @@ -673,91 +673,91 @@ Deploy a Hazelcast cluster in cloud environments including Hazelcast Viridian Ma |AWS |icon:check-circle[size=lg,role=success] -|icon:times[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] |icon:check-circle[size=lg,role=success] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] |Azure |icon:check-circle[size=lg,role=success] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] |Google Cloud Platform |icon:check-circle[size=lg,role=success] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] |Pivotal Cloud Foundry |icon:check-circle[size=lg,role=success] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] |Docker |icon:check-circle[size=lg,role=success] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] |Apache jclouds |icon:check-circle[size=lg,role=success] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] |Consul |icon:check-circle[size=lg,role=success] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] |etcd |icon:check-circle[size=lg,role=success] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] |Eureka |icon:check-circle[size=lg,role=success] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] |Heroku |icon:check-circle[size=lg,role=success] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] |Zookeeper |icon:check-circle[size=lg,role=success] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] |=== ==== @@ -833,19 +833,19 @@ Hazelcast offers an extended set of diagnostics plugins for both Hazelcast membe |Diagnostics |icon:check-circle[size=lg,role=success] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] |Client-side statistics |icon:check-circle[size=lg,role=success] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] |Client Near Cache stats |icon:check-circle[size=lg,role=success] @@ -853,12 +853,12 @@ Hazelcast offers an extended set of diagnostics plugins for both Hazelcast membe |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] -|icon:times[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] |Client runtime stats |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] -|icon:times[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] @@ -866,7 +866,7 @@ Hazelcast offers an extended set of diagnostics plugins for both Hazelcast membe |Client operating systems stats |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] -|icon:times[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] @@ -968,8 +968,8 @@ By default, members allow connections from any Hazelcast client. So, any client |Blue/green deployments and disaster recovery |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] -|icon:times[size=lg,role=error] -|icon:times[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |=== From 05ae8cb6b9662aa48df4970cdffdbac486d2ff51 Mon Sep 17 00:00:00 2001 From: Amanda Lindsay Date: Tue, 2 Dec 2025 13:52:33 +0000 Subject: [PATCH 12/18] DOC-556-2: removed N/A, add key to icons --- .../pages/client-feature-comparison.adoc | 44 ++++++++++--------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/docs/modules/clients/pages/client-feature-comparison.adoc b/docs/modules/clients/pages/client-feature-comparison.adoc index 7a09820b0..6d5de85e5 100644 --- a/docs/modules/clients/pages/client-feature-comparison.adoc +++ b/docs/modules/clients/pages/client-feature-comparison.adoc @@ -1,8 +1,10 @@ = Client features overview -:description: Not all features are available in every client. The following provides an at-a-glance overview of what each client offers, and a detailed list of specific features. +:description: Not all features are available in every client. The following tables provides an at-a-glance overview of what each client offers, and a detailed list of specific features. {description} +NOTE: Key to symbols: icon:check-circle[size=lg,role=success] -- supported; icon:circle-xmark[size=lg,role=error] -- not supported; icon:check-circle[size=lg,role=success] -- partially supported + ==== *Client features at a glance* [cols="<40%,^10%,^10%,^10%,^10%,^10%,^10%", options="header"] @@ -233,11 +235,11 @@ Hazelcast offers distributed implementations of many common data structures. For |Jcache |icon:check-circle[size=lg,role=success] -|N/A -|N/A -|N/A -|N/A -|N/A +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] |Cardinality Estimator |icon:check-circle[size=lg,role=success] @@ -453,11 +455,11 @@ You can use SQL to run optimized distributed queries on the keys and values of m |Continuous Query Caching |icon:check-circle[size=lg,role=success] -|N/A -|N/A -|N/A -|N/A -|N/A +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] |Listener with predicate |icon:check-circle[size=lg,role=success] @@ -504,11 +506,11 @@ Near Cache is highly recommended for data structures that are mostly read. xref: |HD Memory |icon:check-circle[size=lg,role=success] -|N/A -|N/A -|N/A -|N/A -|N/A +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] |Preload cache from last used |icon:check-circle[size=lg,role=success] @@ -916,11 +918,11 @@ For data to be sent over a network between cluster members and/or clients, it ne |DataSerializable |icon:check-circle[size=lg,role=success] -|N/A -|N/A -|N/A -|N/A -|N/A +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] +|icon:circle-xmark[size=lg,role=error] |Custom serializers |icon:check-circle[size=lg,role=success] From 73922c47dfc18bdea592e2e2ccc8d3ee44a52ec3 Mon Sep 17 00:00:00 2001 From: Amanda Lindsay Date: Tue, 2 Dec 2025 15:05:38 +0000 Subject: [PATCH 13/18] DOC-556-2: correct symbol --- docs/modules/clients/pages/client-feature-comparison.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/modules/clients/pages/client-feature-comparison.adoc b/docs/modules/clients/pages/client-feature-comparison.adoc index 6d5de85e5..57f9cb721 100644 --- a/docs/modules/clients/pages/client-feature-comparison.adoc +++ b/docs/modules/clients/pages/client-feature-comparison.adoc @@ -1,9 +1,9 @@ = Client features overview -:description: Not all features are available in every client. The following tables provides an at-a-glance overview of what each client offers, and a detailed list of specific features. +:description: Not all features are available in every client. The following tables provide an at-a-glance overview of what each client offers, and detailed lists of specific features. {description} -NOTE: Key to symbols: icon:check-circle[size=lg,role=success] -- supported; icon:circle-xmark[size=lg,role=error] -- not supported; icon:check-circle[size=lg,role=success] -- partially supported +NOTE: Key to symbols: icon:check-circle[size=lg,role=success] -- supported; icon:circle-xmark[size=lg,role=error] -- not supported; icon:circle-half-stroke[size=lg,role=warning] -- partially supported ==== *Client features at a glance* From 3a26f2f08cf387ad258d77154d4ad08508afacc8 Mon Sep 17 00:00:00 2001 From: Amanda Lindsay Date: Tue, 2 Dec 2025 15:23:51 +0000 Subject: [PATCH 14/18] DOC-556-2: tweaked nav --- docs/modules/clients/pages/client-feature-comparison.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/modules/clients/pages/client-feature-comparison.adoc b/docs/modules/clients/pages/client-feature-comparison.adoc index 57f9cb721..dfbec7b07 100644 --- a/docs/modules/clients/pages/client-feature-comparison.adoc +++ b/docs/modules/clients/pages/client-feature-comparison.adoc @@ -1,4 +1,4 @@ -= Client features overview += Client features :description: Not all features are available in every client. The following tables provide an at-a-glance overview of what each client offers, and detailed lists of specific features. {description} From 5fa5f2ac5936e9fc24d5790104ecffb66b6505d1 Mon Sep 17 00:00:00 2001 From: Amanda Lindsay Date: Wed, 3 Dec 2025 09:06:45 +0000 Subject: [PATCH 15/18] DOC-556-2: test different tick icon & remove table border --- docs/modules/clients/pages/client-feature-comparison.adoc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/modules/clients/pages/client-feature-comparison.adoc b/docs/modules/clients/pages/client-feature-comparison.adoc index dfbec7b07..2e7180f30 100644 --- a/docs/modules/clients/pages/client-feature-comparison.adoc +++ b/docs/modules/clients/pages/client-feature-comparison.adoc @@ -5,14 +5,14 @@ NOTE: Key to symbols: icon:check-circle[size=lg,role=success] -- supported; icon:circle-xmark[size=lg,role=error] -- not supported; icon:circle-half-stroke[size=lg,role=warning] -- partially supported -==== +// ==== *Client features at a glance* [cols="<40%,^10%,^10%,^10%,^10%,^10%,^10%", options="header"] |=== |[align=left]*Feature*|[align=center]*Java*|[align=center]*.NET*|[align=center]*C++*|[align=center]*Python*|[align=center]*Node.js*|[align=center]*Go* |Stream processing -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] @@ -20,7 +20,7 @@ NOTE: Key to symbols: icon:check-circle[size=lg,role=success] -- supported; icon |icon:circle-xmark[size=lg,role=error] |Data structures -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-half-stroke[size=lg,role=warning] |icon:circle-half-stroke[size=lg,role=warning] |icon:circle-half-stroke[size=lg,role=warning] @@ -249,7 +249,7 @@ Hazelcast offers distributed implementations of many common data structures. For |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] |=== -==== +// ==== .Concurrency primitives [%collapsible] From 94de058b979dd32c79f4fcc55d450af05bc9ccb0 Mon Sep 17 00:00:00 2001 From: Amanda Lindsay Date: Wed, 3 Dec 2025 10:02:14 +0000 Subject: [PATCH 16/18] DOC-556-2: fix table --- docs/modules/clients/pages/client-feature-comparison.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/modules/clients/pages/client-feature-comparison.adoc b/docs/modules/clients/pages/client-feature-comparison.adoc index 2e7180f30..cd38e8b93 100644 --- a/docs/modules/clients/pages/client-feature-comparison.adoc +++ b/docs/modules/clients/pages/client-feature-comparison.adoc @@ -131,7 +131,7 @@ NOTE: Key to symbols: icon:check-circle[size=lg,role=success] -- supported; icon |icon:check-circle[size=lg,role=success] |icon:check-circle[size=lg,role=success] |=== -==== +// ==== .Stream processing [%collapsible] @@ -249,7 +249,7 @@ Hazelcast offers distributed implementations of many common data structures. For |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] |=== -// ==== +==== .Concurrency primitives [%collapsible] From e2fd92013891af3850533501f40d19d000533167 Mon Sep 17 00:00:00 2001 From: Amanda Lindsay Date: Wed, 3 Dec 2025 10:20:17 +0000 Subject: [PATCH 17/18] DOC-556-2: replaced check-circle with circle-check icon --- .../pages/client-feature-comparison.adoc | 754 +++++++++--------- 1 file changed, 377 insertions(+), 377 deletions(-) diff --git a/docs/modules/clients/pages/client-feature-comparison.adoc b/docs/modules/clients/pages/client-feature-comparison.adoc index cd38e8b93..25ea88ad1 100644 --- a/docs/modules/clients/pages/client-feature-comparison.adoc +++ b/docs/modules/clients/pages/client-feature-comparison.adoc @@ -3,7 +3,7 @@ {description} -NOTE: Key to symbols: icon:check-circle[size=lg,role=success] -- supported; icon:circle-xmark[size=lg,role=error] -- not supported; icon:circle-half-stroke[size=lg,role=warning] -- partially supported +NOTE: Key to symbols: icon:circle-check[size=lg,role=success] -- supported; icon:circle-xmark[size=lg,role=error] -- not supported; icon:circle-half-stroke[size=lg,role=warning] -- partially supported // ==== *Client features at a glance* @@ -28,31 +28,31 @@ NOTE: Key to symbols: icon:check-circle[size=lg,role=success] -- supported; icon |icon:circle-half-stroke[size=lg,role=warning] |Concurrency primitives -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-half-stroke[size=lg,role=warning] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-half-stroke[size=lg,role=warning] |Distributed processing -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-half-stroke[size=lg,role=warning] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-half-stroke[size=lg,role=warning] |icon:circle-half-stroke[size=lg,role=warning] |Transactions -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] |Query -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-half-stroke[size=lg,role=warning] |icon:circle-half-stroke[size=lg,role=warning] |icon:circle-half-stroke[size=lg,role=warning] @@ -60,7 +60,7 @@ NOTE: Key to symbols: icon:check-circle[size=lg,role=success] -- supported; icon |icon:circle-half-stroke[size=lg,role=warning] |Near Cache -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-half-stroke[size=lg,role=warning] |icon:circle-half-stroke[size=lg,role=warning] |icon:circle-half-stroke[size=lg,role=warning] @@ -68,7 +68,7 @@ NOTE: Key to symbols: icon:check-circle[size=lg,role=success] -- supported; icon |icon:circle-half-stroke[size=lg,role=warning] |Configuration -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-half-stroke[size=lg,role=warning] |icon:circle-half-stroke[size=lg,role=warning] |icon:circle-half-stroke[size=lg,role=warning] @@ -76,7 +76,7 @@ NOTE: Key to symbols: icon:check-circle[size=lg,role=success] -- supported; icon |icon:circle-half-stroke[size=lg,role=warning] |Security -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-half-stroke[size=lg,role=warning] |icon:circle-half-stroke[size=lg,role=warning] |icon:circle-half-stroke[size=lg,role=warning] @@ -84,7 +84,7 @@ NOTE: Key to symbols: icon:check-circle[size=lg,role=success] -- supported; icon |icon:circle-half-stroke[size=lg,role=warning] |Cloud -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-half-stroke[size=lg,role=warning] |icon:circle-half-stroke[size=lg,role=warning] |icon:circle-half-stroke[size=lg,role=warning] @@ -92,23 +92,23 @@ NOTE: Key to symbols: icon:check-circle[size=lg,role=success] -- supported; icon |icon:circle-half-stroke[size=lg,role=warning] |Networking -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |Event listeners -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |Monitoring -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-half-stroke[size=lg,role=warning] |icon:circle-half-stroke[size=lg,role=warning] |icon:circle-half-stroke[size=lg,role=warning] @@ -116,7 +116,7 @@ NOTE: Key to symbols: icon:check-circle[size=lg,role=success] -- supported; icon |icon:circle-half-stroke[size=lg,role=warning] |Serialization -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-half-stroke[size=lg,role=warning] |icon:circle-half-stroke[size=lg,role=warning] |icon:circle-half-stroke[size=lg,role=warning] @@ -124,12 +124,12 @@ NOTE: Key to symbols: icon:check-circle[size=lg,role=success] -- supported; icon |icon:circle-half-stroke[size=lg,role=warning] |Client connectivity -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-half-stroke[size=lg,role=warning] |icon:circle-half-stroke[size=lg,role=warning] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |=== // ==== @@ -143,7 +143,7 @@ Applies to Java and Python Jet jobs only |[align=left]*Feature*|[align=center]*Java*|[align=center]*.NET*|[align=center]*C++*|[align=center]*Python*|[align=center]*Node.js*|[align=center]*Go* |Pipeline API -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] @@ -162,79 +162,79 @@ Hazelcast offers distributed implementations of many common data structures. For |[align=left]*Feature*|[align=center]*Java*|[align=center]*.NET*|[align=center]*C++*|[align=center]*Python*|[align=center]*Node.js*|[align=center]*Go* |Map -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |Queue -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |Set -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |List -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |MultiMap -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |Replicated Map -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |Ringbuffer -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |Topic -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-xmark[size=lg,role=error] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |Reliable Topic -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-xmark[size=lg,role=error] |Jcache -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] @@ -242,7 +242,7 @@ Hazelcast offers distributed implementations of many common data structures. For |icon:circle-xmark[size=lg,role=error] |Cardinality Estimator -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] @@ -261,60 +261,60 @@ Data structures in the CP subsystem always maintain linearizability and prefer c |[align=left]*Feature*|[align=center]*Java*|[align=center]*.NET*|[align=center]*C++*|[align=center]*Python*|[align=center]*Node.js*|[align=center]*Go* |Semaphore -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-xmark[size=lg,role=error] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-xmark[size=lg,role=error] |Fenced Lock -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-xmark[size=lg,role=error] |AtomicLong -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |AtomicReference -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |CountDownLatch -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-xmark[size=lg,role=error] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-xmark[size=lg,role=error] |CRDT PN Counter -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-xmark[size=lg,role=error] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |Flake ID Generator -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |=== ==== @@ -328,20 +328,20 @@ Distributed computing is the process of running computational tasks on different |[align=left]*Feature*|[align=center]*Java*|[align=center]*.NET*|[align=center]*C++*|[align=center]*Python*|[align=center]*Node.js*|[align=center]*Go* |Distributed Executor Service -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-xmark[size=lg,role=error] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] |Entry Processor -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |=== ==== @@ -355,42 +355,42 @@ You create a `TransactionContext` object to begin, commit and rollback a transac |[align=left]*Feature*|[align=center]*Java*|[align=center]*.NET*|[align=center]*C++*|[align=center]*Python*|[align=center]*Node.js*|[align=center]*Go* |TxnMap -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] |TxnMultiMap -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] |TxnQueue -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] |TxnList -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] |TxnSet -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] |=== @@ -406,15 +406,15 @@ You can use SQL to run optimized distributed queries on the keys and values of m |[align=left]*Feature*|[align=center]*Java*|[align=center]*.NET*|[align=center]*C++*|[align=center]*Python*|[align=center]*Node.js*|[align=center]*Go* |SQL -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-xmark[size=lg,role=error] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |SQL Query Re-Submission -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] @@ -422,39 +422,39 @@ You can use SQL to run optimized distributed queries on the keys and values of m |icon:circle-xmark[size=lg,role=error] |Query (Predicates) -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |Paging predicate -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-xmark[size=lg,role=error] |Partition predicate -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] |Built-in Predicates -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |Continuous Query Caching -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] @@ -462,28 +462,28 @@ You can use SQL to run optimized distributed queries on the keys and values of m |icon:circle-xmark[size=lg,role=error] |Listener with predicate -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |Projections -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-xmark[size=lg,role=error] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] |Aggregations -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-xmark[size=lg,role=error] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |=== ==== @@ -497,15 +497,15 @@ Near Cache is highly recommended for data structures that are mostly read. xref: |[align=left]*Feature*|[align=center]*Java*|[align=center]*.NET*|[align=center]*C++*|[align=center]*Python*|[align=center]*Node.js*|[align=center]*Go* |Near Cache support -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |HD Memory -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] @@ -513,7 +513,7 @@ Near Cache is highly recommended for data structures that are mostly read. xref: |icon:circle-xmark[size=lg,role=error] |Preload cache from last used -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] @@ -521,12 +521,12 @@ Near Cache is highly recommended for data structures that are mostly read. xref: |icon:circle-xmark[size=lg,role=error] |Eventual Consistency Control -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |=== ==== @@ -540,23 +540,23 @@ You can configure a Hazelcast cluster or client using either static or dynamic c |[align=left]*Feature*|[align=center]*Java*|[align=center]*.NET*|[align=center]*C++*|[align=center]*Python*|[align=center]*Node.js*|[align=center]*Go* |Declarative Configuration (XML/JSON/YAML) -|icon:check-circle[size=lg,role=success] (XML/YAML) -|icon:check-circle[size=lg,role=success] (JSON) +|icon:circle-check[size=lg,role=success] (XML/YAML) +|icon:circle-check[size=lg,role=success] (JSON) |icon:circle-xmark[size=lg,role=error] -|icon:check-circle[size=lg,role=success] (Dictionary objects as config) -|icon:check-circle[size=lg,role=success] (JSON objects as config) -|icon:check-circle[size=lg,role=success] (JSON/YAML/TOML) +|icon:circle-check[size=lg,role=success] (Dictionary objects as config) +|icon:circle-check[size=lg,role=success] (JSON objects as config) +|icon:circle-check[size=lg,role=success] (JSON/YAML/TOML) |Programmatic Configuration -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |Client Configuration Import -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] @@ -564,15 +564,15 @@ You can configure a Hazelcast cluster or client using either static or dynamic c |icon:circle-xmark[size=lg,role=error] |Fail Fast on Invalid Configuration -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |Dynamic Configuration -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] @@ -591,15 +591,15 @@ These features allow you to perform security activities, such as intercepting so |[align=left]*Feature*|[align=center]*Java*|[align=center]*.NET*|[align=center]*C++*|[align=center]*Python*|[align=center]*Node.js*|[align=center]*Go* |SSL Support -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |XA Transactions -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] @@ -607,42 +607,42 @@ These features allow you to perform security activities, such as intercepting so |icon:circle-xmark[size=lg,role=error] |Mutual Authentication -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |Authorization -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |Custom Authentication Modules -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-xmark[size=lg,role=error] |Token-based credentials -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-xmark[size=lg,role=error] |Kerberos authentication -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-xmark[size=lg,role=error] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] |=== @@ -658,31 +658,31 @@ Deploy a Hazelcast cluster in cloud environments including Hazelcast Viridian Ma |[align=left]*Feature*|[align=center]*Java*|[align=center]*.NET*|[align=center]*C++*|[align=center]*Python*|[align=center]*Node.js*|[align=center]*Go* |Hazelcast Cloud -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |Kubernetes -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-xmark[size=lg,role=error] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |AWS -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-xmark[size=lg,role=error] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] |Azure -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] @@ -690,7 +690,7 @@ Deploy a Hazelcast cluster in cloud environments including Hazelcast Viridian Ma |icon:circle-xmark[size=lg,role=error] |Google Cloud Platform -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] @@ -698,7 +698,7 @@ Deploy a Hazelcast cluster in cloud environments including Hazelcast Viridian Ma |icon:circle-xmark[size=lg,role=error] |Pivotal Cloud Foundry -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] @@ -706,7 +706,7 @@ Deploy a Hazelcast cluster in cloud environments including Hazelcast Viridian Ma |icon:circle-xmark[size=lg,role=error] |Docker -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] @@ -714,7 +714,7 @@ Deploy a Hazelcast cluster in cloud environments including Hazelcast Viridian Ma |icon:circle-xmark[size=lg,role=error] |Apache jclouds -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] @@ -722,7 +722,7 @@ Deploy a Hazelcast cluster in cloud environments including Hazelcast Viridian Ma |icon:circle-xmark[size=lg,role=error] |Consul -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] @@ -730,7 +730,7 @@ Deploy a Hazelcast cluster in cloud environments including Hazelcast Viridian Ma |icon:circle-xmark[size=lg,role=error] |etcd -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] @@ -738,7 +738,7 @@ Deploy a Hazelcast cluster in cloud environments including Hazelcast Viridian Ma |icon:circle-xmark[size=lg,role=error] |Eureka -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] @@ -746,7 +746,7 @@ Deploy a Hazelcast cluster in cloud environments including Hazelcast Viridian Ma |icon:circle-xmark[size=lg,role=error] |Heroku -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] @@ -754,7 +754,7 @@ Deploy a Hazelcast cluster in cloud environments including Hazelcast Viridian Ma |icon:circle-xmark[size=lg,role=error] |Zookeeper -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] @@ -772,20 +772,20 @@ Deploy a Hazelcast cluster in cloud environments including Hazelcast Viridian Ma |[align=left]*Feature*|[align=center]*Java*|[align=center]*.NET*|[align=center]*C++*|[align=center]*Python*|[align=center]*Node.js*|[align=center]*Go* |Unisocket client -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |Smart client -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |=== ==== @@ -799,28 +799,28 @@ You can register for Hazelcast entry events so you are notified when those event |[align=left]*Feature*|[align=center]*Java*|[align=center]*.NET*|[align=center]*C++*|[align=center]*Python*|[align=center]*Node.js*|[align=center]*Go* |Lifecycle listener -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |Event listeners -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |Sub-listener interfaces for map listener -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |=== ==== @@ -834,7 +834,7 @@ Hazelcast offers an extended set of diagnostics plugins for both Hazelcast membe |[align=left]*Feature*|[align=center]*Java*|[align=center]*.NET*|[align=center]*C++*|[align=center]*Python*|[align=center]*Node.js*|[align=center]*Go* |Diagnostics -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] @@ -842,7 +842,7 @@ Hazelcast offers an extended set of diagnostics plugins for both Hazelcast membe |icon:circle-xmark[size=lg,role=error] |Client-side statistics -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] @@ -850,28 +850,28 @@ Hazelcast offers an extended set of diagnostics plugins for both Hazelcast membe |icon:circle-xmark[size=lg,role=error] |Client Near Cache stats -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-xmark[size=lg,role=error] |Client runtime stats -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-xmark[size=lg,role=error] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |Client operating systems stats -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-xmark[size=lg,role=error] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |=== ==== @@ -885,39 +885,39 @@ For data to be sent over a network between cluster members and/or clients, it ne |[align=left]*Feature*|[align=center]*Java*|[align=center]*.NET*|[align=center]*C++*|[align=center]*Python*|[align=center]*Node.js*|[align=center]*Go* |Compact serialization -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |Portable serialization -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |IdentifiedDataSerializable -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |JSON (HazelcastJsonValue) -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |DataSerializable -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] @@ -925,20 +925,20 @@ For data to be sent over a network between cluster members and/or clients, it ne |icon:circle-xmark[size=lg,role=error] |Custom serializers -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |Global serializers -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |=== ==== @@ -952,28 +952,28 @@ By default, members allow connections from any Hazelcast client. So, any client |[align=left]*Feature*|[align=center]*Java*|[align=center]*.NET*|[align=center]*C++*|[align=center]*Python*|[align=center]*Node.js*|[align=center]*Go* |Connection strategy -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |Connection retry -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |Blue/green deployments and disaster recovery -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |icon:circle-xmark[size=lg,role=error] |icon:circle-xmark[size=lg,role=error] -|icon:check-circle[size=lg,role=success] -|icon:check-circle[size=lg,role=success] +|icon:circle-check[size=lg,role=success] +|icon:circle-check[size=lg,role=success] |=== ==== From 5f405893bbc34f49a73c0cf3a3704d4b997e28bb Mon Sep 17 00:00:00 2001 From: Amanda Lindsay Date: Wed, 3 Dec 2025 10:28:23 +0000 Subject: [PATCH 18/18] DOC-556-2: refine descriptions --- .../modules/clients/pages/client-feature-comparison.adoc | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/docs/modules/clients/pages/client-feature-comparison.adoc b/docs/modules/clients/pages/client-feature-comparison.adoc index 25ea88ad1..29981df38 100644 --- a/docs/modules/clients/pages/client-feature-comparison.adoc +++ b/docs/modules/clients/pages/client-feature-comparison.adoc @@ -5,8 +5,8 @@ NOTE: Key to symbols: icon:circle-check[size=lg,role=success] -- supported; icon:circle-xmark[size=lg,role=error] -- not supported; icon:circle-half-stroke[size=lg,role=warning] -- partially supported -// ==== -*Client features at a glance* +== Client features at a glance + [cols="<40%,^10%,^10%,^10%,^10%,^10%,^10%", options="header"] |=== |[align=left]*Feature*|[align=center]*Java*|[align=center]*.NET*|[align=center]*C++*|[align=center]*Python*|[align=center]*Node.js*|[align=center]*Go* @@ -131,7 +131,10 @@ NOTE: Key to symbols: icon:circle-check[size=lg,role=success] -- supported; icon |icon:circle-check[size=lg,role=success] |icon:circle-check[size=lg,role=success] |=== -// ==== + +== Specific features + +Expand the features below to see if it is supported for a client. .Stream processing [%collapsible]