KEYCLOAK-19034 HotRod store desing proposal
This PR contains the proposal of 0-downtime upgradable storage that is using the Infinispan server for storing entities. Keycloak server communicates with the Infinispan server using HotRod protocol.
If you are interested in some code examples, you can find two proof-of-concept implementations.
The first is available in a playground project available in this PR: https://github.com/keycloak/keycloak-playground/pull/11. This Pr contains also some examples of some simple migrations.
And the second, directly in the Keycloak source code, is available in this WIP branch: https://github.com/mhajas/keycloak/tree/KEYCLOAK-19028-Implement-HotRodMapStorage. This implementation does not contain all parts of the proposal yet.
All discussion points should be redirected to the following GH discussion thread: https://github.com/keycloak/keycloak/discussions/8571
@mhajas I probably missed this part but are we going to use cache stores to persist data and survive to server restarts?
Also, would this store be our default store and preferrable over the JPA one? How users should choose between one or another?
@vmuzikar @pedroigor Thank you for the reviews!
@hmlnarik Can we merge this or do we need something else?