Calendar Caching
Calendar Caching (AID117)
The Calendar Cache was reimagined in order to decentralize the load on the ADITO server and to reduce the usage of the calendarsystem (Exchange). With the ADITO version 2021.0.0 a new cache system was implemented and is used by default. You can also use the legacy calendar cache system via a expert parameter in your instance configuration.
New Cache
The cache was extended by an internal cache for user queries (ConditionCache). As long as a request was sent by the user, your calendar and all entries should be up to date. Every updater that catched changes will be redirected to the client via a listener. A fullUpdate will be executed if a new request is sent by a client. Furthermore the fullUpdate now has a paging algorythm, which reduces the load on the storage if a big chunk of updates are received.
New Caching without Subscriptions (Default)
If you don’t use the subscription for calendars you will, like the old logic, execute a fullUpdater for every query in order to receive every entry. This cache can be used with every calender (alias) except DB. If a cached query was sent by a client your cache will not execute a fullUpdater in order to reduce redundant enqueries.
This default cache will be used even if you have the new subscriptions enabled but the calendar doesn’t support it. Until now only Exchange supports subscriptions!
Caching with Subscription
Subscriptions are only support by Exchange until now! Every other calendar will use the "New Caching without Subscriptions" logic.
Subscriptions are a native solution of the calendarsystem (e.g. Exchange) in order to register changes in a calendar. The exact implementation can differ of each calendarsystem. Subscriptions are limited to TTL. If this duration is reached they get deleted. Only subscriptions in the preload area are kept alive as long as the client is running.
Delta queries
Delta queries, in contrast to fullUpdaters, only gets updated entries of the exchange backend. They use an active polling which reduces the amount of data for each query.
Delta queries can be accessed by every calendaruser and does not require a connection to the exchange backend.
Subscriptions to other calendar users always use delta queries.
Streaming Subscription
With ADITO 2021.1.0 you can enable a native solution of the EWS-API that allows a user to have a concurrent session which sends all updates to your calendar. The sessions stays connected to the Exchange in order to receive notifications. ADITO (backend) then interpretes these notifcations as changes in the cache and updates the calendar.
Native subscriptions for EWS can only be used for the respective user due to limitations for each mailbox.