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
+11-9Lines changed: 11 additions & 9 deletions
Display the source diff
Display the rich diff
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,7 +119,7 @@ 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
-
***Polyglot clients** - Access the same NamedMap API from C++, Go, Java, JavaScript, .NET, or Python.
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
@@ -130,10 +130,13 @@ the storage capacity, the cluster, and parallelizable subscribers.
130
130
***Repository API** - a framework implementing the Repository pattern from Domain-Driven Design,
131
131
abstracting persistent storage implementation from application code, with advanced features like
132
132
support for pagination, projections, streaming, and updating in-place
133
-
***Microservices integration** - broad and close integration with Helidon, Micronaut, and Spring for
134
-
developing microservices applications using Coherence as a data source or cache
135
-
***coherence-concurrent** - Coherence-backed implementations of types from the `java.util.concurrent`
136
-
package enabling distributed process coordination through the grid
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
137
140
138
141
Coherence also provides a number of non-functional features:
139
142
@@ -158,8 +161,7 @@ JMX server that provides a view of all members of the cluster.
158
161
***Management over REST** - All JMX data and operations can be performed over REST,
159
162
including cluster wide thread dumps and heapdumps.
160
163
***Non-cluster Access** - Provides access to the cluster from the outside via proxies,
161
-
for distant (high latency) clients and for non-Java languages such as C++, Go, JavaScript,
162
-
.NET, and Python.
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).
163
165
***Kubernetes friendly** - Enables seamless and safe deployment of applications to k8s with
164
166
our own [operator](https://github.com/oracle/coherence-operator).
@@ -29,6 +29,7 @@ a cache will be represented by an implementation of `NamedCache<K,V>`.
29
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,14 +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
-
* *Polyglot clients* - access the same NamedCache API from C{pp}, Go, Java, JavaScript, .NET, or Python
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
50
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
51
-
* *Microservices integration* - broad and close integration with Helidon, Micronaut, and Spring for developing microservices applications using Coherence as a data source or cache
52
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
53
59
54
60
There are also a number of non-functional features that Coherence provides:
55
61
@@ -62,7 +68,7 @@ There are also a number of non-functional features that Coherence provides:
62
68
* *Lossy redundancy* - ability to reduce the redundancy guarantee by making backups and/or persistence asynchronous from a client perspective
63
69
* *Single Mangement View* - provides insight into the cluster with a single JMX server that provides a view of all members of the cluster
64
70
* *Management over REST* - all JMX data and operations can be performed over REST, including cluster wide thread dumps and heapdumps
65
-
* *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}, Go, JavaScript, .NET, and Python
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]
66
72
* *Kubernetes friendly* - seamlessly and safely deploy applications to k8s with our own https://github.com/oracle/coherence-operator[operator]
0 commit comments