Друзья, приглашаю оценить реализацию сессионного хранилища на основе Cosmos DB. Это провайдер сессий для
ASP.NET Mvc.
Кому интересно, посмотрите код. Будут ценны ваши отзывы.
https://github.com/dodopizza/aspnet-session-cosmosdbНекоторые особенности.
Применен альтернативный дизайн - локи хранятся отдельно, для оптимизации записей при постановке лока.
Скользящий TTL реализован стохастическим методом, будет продвигаться не на каждый реквест, а только если достигнута известная доля общего TTL, за счет этого экономятся RU CosmosDB.
Применена опциональная GZip-компрессия, обеспечивающая сжатие данных сессии примерно в 4 раза, для экономии Request Units.
Расходуется примерно 30-35 RU на запрос с блокировкой. В случае Read-Only, расходуется около 2 RU
Встроен трейсинг на основе TraceSource, его при желании можно сконнектить с любым логгером.