Design criteria for storing Realm fields as core columns vs attributes #44900
Unanswered
inoorinoor
asked this question in
Q&A
Replies: 1 comment
-
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Hello Keycloak team,
I’m currently working on a thesis project where I’m implementing a custom Keycloak storage provider with YDB as the primary datastore (using Storage SPI). At the moment, I’m re-implementing the Realm model (RealmModel, RealmProvider and RealmProviderFactory).
And I’d like to better understand the design decisions behind Keycloak’s data model.
In particular, I’m interested in how you decide:
I’d really appreciate your insights on the following points:
Design criteria
What were the main factors when deciding whether a field should be?
Was it because of frequency of access? participation in queries/filters? backward compatibility? extensibility? schema evolution concerns?
Concrete examples
Are there any concrete examples from the Realm (or User/Client) model where this trade-off was discussed explicitly?
For instance, fields that:
Performance and testing
Did you perform any performance or load testing to evaluate:
If yes, were these tests part of internal benchmarks or real-world feedback from large installations?
The reason I’m asking is that when mapping Keycloak’s model to a different backend (in my case, YDB with a different storage and indexing model), this distinction has a significant impact on schema design, indexing strategy, and query performance.
Any guidance, rationale, or references to past discussions would be extremely helpful.
Thanks a lot for your work on Keycloak and for your time!
Beta Was this translation helpful? Give feedback.
All reactions