Skip to main content

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.

Cache1

New Cache

Cache2

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)

Cache3

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.

Cache4

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.