keycloak-community icon indicating copy to clipboard operation
keycloak-community copied to clipboard

KEYCLOAK-19034 HotRod store desing proposal

Open mhajas opened this issue 4 years ago • 2 comments

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 avatar Oct 06 '21 08:10 mhajas

@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?

pedroigor avatar Oct 13 '21 18:10 pedroigor

@vmuzikar @pedroigor Thank you for the reviews!

@hmlnarik Can we merge this or do we need something else?

mhajas avatar May 19 '22 08:05 mhajas