In an effort to improve Java developer ease of use for caching with Geode I
am looking for feedback on going forward with creating a Java client. This
client will allow for server-side region creation and distributed data
caching. This would allow for a thin client that fits with microservice
caching patterns and also abstracts a cleaner client-server experience
driven interface.
Initially we were going to update the Region interface but were concerned
with breaking existing applications. We also would like to provide Region
creation to a client application and so propose here solving both of these
areas with a Java client.
It would have new project repo for the client.
It would provide new Region interface for clients. The specifics of the
API design are too lengthy for this conversation but implementation will
resemble JSR 107 Cache interface.
It would use the new security framework.
*An example*,
The client application simply creates an instance of client and points it
to the locator:
org.apache.geode.client.Client client = Client.create(locatorHost,
locatorPort);
Client has the following methods:
package org.apache.geode.client;
public interface GeodeClient {
/**
* creates the region on the servers, or gets the region if it exits,
returns a PROXY region
*/
public Region getOrCreateRegion(RegionAttributes attributes, String name);
/**
* Returns a PROXY region if the region exists on the server
*/
public Region getRegion(String name);
MVP
The smallest set of features to test this idea, learn and iterate, and get
the client into the communities hands for future iterations is:
Create a server side Region from a client
Region interface has CRUD on par with javax.cache.Cache (from JSR 107)
Calls are asynchronous -- futures
Also would like feedback on which future functionality would be most useful
from a thin client:
Function execution
Durable clients
User defined serialization
Register interest
Queries
CQ
Near side caching
Create disk stores from client
Region group membership
Client subscription load balancing
Transactions
Thanks,
-Fred