You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+15-5Lines changed: 15 additions & 5 deletions
Original file line number
Diff line number
Diff line change
@@ -101,8 +101,8 @@ Coherence Maps provide a number of features:
101
101
102
102
* Fundamental **key-based access**: get/put getAll/putAll.
103
103
* Client-side and storage-side events:
104
-
***MapListeners** to asynchronously notify clients of changes to data.
105
-
***EventInterceptors** (either sync or async) to be notified storage level events, including
104
+
***MapListeners** to asynchronously notify clients of changes to data.
105
+
***EventInterceptors** (either sync or async) to be notified storage level events, including
106
106
mutations, partition transfer, failover, and so on.
107
107
***NearCaches** - Locally cached data based on previous requests with local content
108
108
invalidated upon changes in the storage tier.
@@ -119,14 +119,24 @@ to execute processing logic for the appropriate entries with exclusive access.
119
119
associating data (thus being on the same partition) and manipulating other entries
120
120
on the same partition, potentially across different maps.
121
121
***Non-blocking / async NamedMap API**
122
-
***C++ and .NET clients** - Access the same NamedMap API from either C++ or .NET.
122
+
***Polyglot clients** - Access the same NamedMap API from [C++](https://github.com/oracle/coherence-cpp-extend-client), [Go](https://github.com/oracle/coherence-go-client), Java, [JavaScript](https://github.com/oracle/coherence-js-client), [.NET](https://github.com/oracle/coherence-dotnet-extend-client), or [Python](https://github.com/oracle/coherence-py-client)
123
123
***Portable Object Format** - Optimized serialization format, with the ability to
124
124
navigate the serialized form for optimized queries, aggregations, or data processing.
125
125
***Integration with Databases** - Database and third party data integration with
126
126
CacheStores, including both synchronous or asynchronous writes.
127
127
***CohQL** - Ansi-style query language with a console for adhoc queries.
128
128
***Topics** - Distributed topics implementation that offers pub/sub messaging with
129
129
the storage capacity, the cluster, and parallelizable subscribers.
130
+
***Repository API** - a framework implementing the Repository pattern from Domain-Driven Design,
131
+
abstracting persistent storage implementation from application code, with advanced features like
132
+
support for pagination, projections, streaming, and updating in-place
133
+
***coherence-concurrent** - Coherence-backed implementations of types from the `java.util.concurrent` package enabling distributed process coordination through the grid
134
+
***Atomics** - for implementing e.g. atomic counters shared between cluster, with an optional asynchronous API
135
+
***Executors** - for submitting tasks to be executed in the cluster
136
+
***Locks** - for implementing lock-based concurrency control across multiple cluster members
137
+
***Queues** - for implementing blocking queue / dequeue behavior across multiple cluster members
138
+
***Semaphores** - for implementing synchronization of execution across multiple cluster members
139
+
***Microservices integration** - broad and close integration with [Helidon](https://docs.oracle.com/en/middleware/standalone/coherence/14.1.2/integrate/index.html), [Micronaut](https://micronaut-projects.github.io/micronaut-coherence/latest/guide/), and [Spring](https://spring.coherence.community/4.3.0/#/about/01_overview) for developing microservices applications using Coherence as a data source or cache
130
140
131
141
Coherence also provides a number of non-functional features:
132
142
@@ -151,7 +161,7 @@ JMX server that provides a view of all members of the cluster.
151
161
***Management over REST** - All JMX data and operations can be performed over REST,
152
162
including cluster wide thread dumps and heapdumps.
153
163
***Non-cluster Access** - Provides access to the cluster from the outside via proxies,
154
-
for distant (high latency) clients and for non-java languages such as C++ and .NET.
164
+
for distant (high latency) clients and for non-Java languages such as [C++](https://github.com/oracle/coherence-cpp-extend-client), [Go](https://github.com/oracle/coherence-go-client), [JavaScript](https://github.com/oracle/coherence-js-client), [.NET](https://github.com/oracle/coherence-dotnet-extend-client), and [Python](https://github.com/oracle/coherence-py-client).
155
165
***Kubernetes friendly** - Enables seamless and safe deployment of applications to k8s with
156
166
our own [operator](https://github.com/oracle/coherence-operator).
157
167
@@ -184,7 +194,7 @@ For **Windows**, see [here](https://oracle.github.io/coherence-cli/docs/latest/#
184
194
185
195
#### <aname="create"></a>Create and start a Cluster
186
196
187
-
Use the following command to create a 3 node Coherence cluster called `my-cluster`, scoped to your local machine using the default of Coherence CE 22.06.10.
197
+
Use the following command to create a 3 node Coherence cluster called `my-cluster`, scoped to your local machine using the default values.
Copyright (c) 2000, 2023, Oracle and/or its affiliates.
2
+
Copyright (c) 2000, 2025, Oracle and/or its affiliates.
3
3
4
4
Licensed under the Universal Permissive License v 1.0 as shown at
5
5
https://oss.oracle.com/licenses/upl.
@@ -16,7 +16,7 @@
16
16
====
17
17
The documentation on this site covers new features and improvements that are currently only available in the open source https://github.com/oracle/coherence[Coherence Community Edition] (CE).
18
18
19
-
For complete documentation covering all the features that are available both in the latest commercial editions (Enterprise and Grid Edition) and the Community Edition, please refer to the https://docs.oracle.com/en/middleware/standalone/coherence/{version-commercial-docs}/index.html[Official Documentation].
19
+
For complete documentation covering all the features that are available both in the latest commercial editions (Enterprise and Grid Edition) and the Community Edition, please refer to the https://docs.oracle.com/en/middleware/fusion-middleware/coherence/{version-commercial-docs}/index.html[Official Documentation].
20
20
====
21
21
22
22
Coherence is scalable, fault-tolerant, cloud-ready, distributed platform for building grid-based applications and reliably storing data.
@@ -14,21 +14,22 @@ First and foremost, Coherence provides a fundamental service that is responsible
14
14
common denominator / building block for all other Coherence services.
15
15
This service, referred to as 'service 0' internally, ensures the mesh of members is maintained and responsive,
16
16
taking action to collaboratively evict, shun, or in some cases voluntarily depart the cluster when deemed necessary.
17
-
As members join and leave the cluster, other Coherence services are notified thus allows those services to react accordingly.
17
+
As members join and leave the cluster, other Coherence services are notified thus allowing those services to react accordingly.
18
18
19
-
NOTE: This part of the Coherence product has been in production for 10+ years, being the subject of some extensive and
19
+
NOTE: This part of the Coherence product has been in production for 20+ years, and has been the subject of some extensive and
20
20
imaginative testing.
21
21
While it has been discussed here it certainly is not something that customers, generally, interact with directly but is
22
22
valuable to be aware of.
23
23
24
-
Coherence services build on top of the clustering service, with the key implementations to be aware of are
24
+
Coherence services build on top of the clustering service, with the key implementations to be aware of being
25
25
PartitionedService, InvocationService, and ProxyService.
26
26
27
27
In the majority of cases customers will deal with caches;
28
28
a cache will be represented by an implementation of `NamedCache<K,V>`.
29
-
Cache is an unfortunate name, as many Coherence customers use Coherence as a system-of-record rather than a lossy store of data.
29
+
Cache is an unfortunate name, as many customers use Coherence as a system-of-record rather than a lossy store of data.
30
30
A cache is hosted by a service, generally the PartitionedService, and is the entry point to storing, retrieving,
31
31
aggregating, querying, and streaming data.
32
+
32
33
There are a number of features that caches provide:
33
34
34
35
* Fundamental *key-based access*: get/put getAll/putAll
@@ -42,11 +43,19 @@ There are a number of features that caches provide:
42
43
* *Data local processing* - an ability to send a function to the relevant storage node to execute processing logic for the appropriate entries with exclusive access
43
44
* *Partition local transactions* - an ability to perform scalable transactions by associating data (thus being on the same partition) and manipulating other entries on the same partition potentially across caches
44
45
* *Non-blocking / async NamedCache API*
45
-
* *C{pp} and .NET clients* - access the same NamedCache API from either C{pp} or .NET
46
+
* *Polyglot clients* - access the same NamedCache API from https://github.com/oracle/coherence-cpp-extend-client[C++], https://github.com/oracle/coherence-go-client[Go], Java, https://github.com/oracle/coherence-js-client[JavaScript], https://github.com/oracle/coherence-dotnet-extend-client[.NET], or https://github.com/oracle/coherence-py-client[Python]
46
47
* *Portable Object Format* - optimized serialization format, with the ability to navigate the serialized form for optimized queries, aggregations, or data processing
47
48
* *Integration with Databases* - Database & third party data integration with CacheStores including both synchronous or asynchronous writes
48
49
* *CohQL* - ansi-style query language with a console for adhoc queries
49
50
* *Topics* - distributed topics implementation offering pub/sub messaging with the storage capacity the cluster and parallelizable subscribers
51
+
* *Repository API* - a framework implementing the Repository pattern from Domain-Driven Design, abstracting persistent storage implementation from application code, with advanced features like support for pagination, projections, streaming, and updating in-place
52
+
* *coherence-concurrent* - Coherence-backed implementations of types from the `java.util.concurrent` package enabling distributed process coordination through the grid
53
+
** *Atomics* - for implementing e.g. atomic counters shared between cluster, with an optional asynchronous API
54
+
** *Executors* - for submitting tasks to be executed in the cluster
55
+
** *Locks* - for implementing lock-based concurrency control across multiple cluster members
56
+
** *Queues* - for implementing blocking queue / dequeue behavior across multiple cluster members
57
+
** *Semaphores* - for implementing synchronization of execution across multiple cluster members
58
+
* *Microservices integration* - broad and close integration with https://docs.oracle.com/en/middleware/standalone/coherence/14.1.2/integrate/index.html[Helidon], https://micronaut-projects.github.io/micronaut-coherence/latest/guide/[Micronaut], and https://spring.coherence.community/4.3.0/#/about/01_overview[Spring] for developing microservices applications using Coherence as a data source or cache
50
59
51
60
There are also a number of non-functional features that Coherence provides:
52
61
@@ -59,7 +68,7 @@ There are also a number of non-functional features that Coherence provides:
59
68
* *Lossy redundancy* - ability to reduce the redundancy guarantee by making backups and/or persistence asynchronous from a client perspective
60
69
* *Single Mangement View* - provides insight into the cluster with a single JMX server that provides a view of all members of the cluster
61
70
* *Management over REST* - all JMX data and operations can be performed over REST, including cluster wide thread dumps and heapdumps
62
-
* *Non-cluster Access* - access to the cluster from the outside via proxies, for distant (high latency) clients and for non-java languages such as C{pp} and .NET
71
+
* *Non-cluster Access* - access to the cluster from the outside via proxies, for distant (high latency) clients and for non-Java languages such as https://github.com/oracle/coherence-cpp-extend-client[C++], https://github.com/oracle/coherence-go-client[Go], https://github.com/oracle/coherence-js-client[JavaScript], https://github.com/oracle/coherence-dotnet-extend-client[.NET], or https://github.com/oracle/coherence-py-client[Python]
63
72
* *Kubernetes friendly* - seamlessly and safely deploy applications to k8s with our own https://github.com/oracle/coherence-operator[operator]
0 commit comments