Hi Infinispan developers,

I'm working on a solution for developers who need to access Infinispan services  through different programming languages.

The focus is not on developing a full featured client, but rather discover the value and the limits of this approach.

- is it possible to automatically generate useful clients in different languages?
- can that clients interoperate on the same cache with the same data types?

I came out with a small prototype that I would like to submit to you and on which I would like to gather your impressions.

 You can found the project here [1]: is a gRPC-based client/server architecture for Infinispan based on and EmbeddedCache, with very few features exposed atm.

Currently the project is nothing more than a poc with the following interesting features:

- client can be generated in all the grpc supported language: java, go, c++ examples are provided;
- the interface is full typed. No need for marshaller and clients build in different language can cooperate on the same cache;

The second item is my preferred one beacuse it frees the developer from data marshalling.

What do you think about?
Sounds interesting?
Can you see any flaw?

There's also a list of issues for the future [2], basically I would like to investigate these questions:
How far this architecture can go?
Topology, events, queries... how many of the Infinispan features can be fit in a grpc architecture?

Thank you
Vittorio

[1] https://github.com/rigazilla/ispn-grpc
[2] https://github.com/rigazilla/ispn-grpc/issues

--

Vittorio Rigamonti

Senior Software Engineer

Red Hat

Milan, Italy

vrigamon@redhat.com

irc: rigazilla