Which storage may be used for storing RefreshTokens (TTL=30min)? This storage has to be used by multiple instances of OAuth2 Authorization Servers written in java.
The possible options are:
- Hazelcast IMDG (written in Java)
- Postgres (written in C/C++)
- Redis (written in C)
- Memcached (written in C)
- MongoDB (written in C ?)
- Terracotta (written in Java)
- Infinispan (written in Java)
Those refresh tokens do not need strong transactional consistency and backup ability provided by Postgres.
Features needed:
- High availability mode
- Storing simple data i.e. JSON object
- TTL for rows
- High performance for minimal latency when refreshing tokens
- Consise API to access storage from Admin UI for management purposes
Hazelcast is a pretty candidate, but as far as I know it does not have adequate UI for data management i.e. for RefreshToken revocation. Postgres provides pgadmin for accessing stored data.
So which one would you prefer to use in such case?