Hello!
I would like to ask a question related to the storage for the SSO sessions. I’m considering moving the management of the sessions on our from SQL Server to AWS but not in an RDBMS solution. I was thinking of the DynamoDB service which also handles automatically removal of records with expiration time on the record (TTL). I would like to know if it’s not a good choice based on the limits it has (a record can have up to 400kb of size). The field with the session information is on SQL Server varbinary(max) and considering if that is for the reason the session can go to very huge data and the aforementioned limitation on DynamoDB makes it not a valid choise
The table that I’m using now for that purpose on the SQL server is the following:
sso_session_management
[Id] nvarchar NOT NULL,
[Value] varbinary NOT NULL,
[ExpiresAtTime] datetimeoffset NOT NULL,
[SlidingExpirationInSeconds] [bigint] NULL,
[AbsoluteExpiration] datetimeoffset NULL
I’m curious also about how the queries are made on this table. Are they done always by the Id only? I want to identify what is the best way to set up the relative schema on DynamoDB and since this is a NoSql database with partition and sorting key affecting the way we query data this may affect how I save the data in that DB or should I consider a different solution
Best Regards,
Spyros
Hi Spyros,
Whether the SSO session data is stored in memory, an SQL server DB, Redis or some other store, we access it through the IDistributedCache interface and don’t have any knowledge of the underlying store.
Session data should be relatively small (perhaps a few KBs at most) so you shouldn’t run into any data size limitations.
Entries are only ever accessed using the ID.
I don’t believe there would be any issues implementing this with DynamoDB.
Let us know how you go or if you run into any issues.
Thanks.