Comunicação, calendário e manter informações sobre os outros são partes fundamentais de seu trabalho diário e vida privada. Como um fornecedor de um framework de desenvolvimento de aplicativos e de um ambiente desktop software livre, o KDE resolve isso com a integração com a infraestrutura do PIM fornecida pelo Akonadi.
Implementação do KDE de uma pilha de biblioteca cliente do Akonadi torna mais fácil para desenvolver aplicativos usando Akonadi como sua fonte de dados, bem como agentes Akonadi para o acesso real ao armazenamento persistente dos dados.
Akonadi's design follows the principle of separation of concerns, meaning that each component has a small, well defined role to fullfil in order to achieve a fully functional setup.
There are three main categories of components, all of which are implemented as individual processes for increased system stability and implementation independence:
- Akonadi Server
- Akonadi Agents
- Akonadi Applications
The server category consists of two roles: control and cache.
Control is implemented by a process called akonadi_control. It is the first to start and controls the life cycle of all components other than end user applications.
Cache is implemented by a process called akonadiserver. It is the hub for the data flow, tracks changes and is responsible for system consistency, e.g. ensures unique identifiers, etc.
All communication with these two roles is implemented in the KDE client libraries for Akonadi and available to developers at different level of abstraction.
The agent category describes processes which perform their task without human interaction. This includes a special role also referred to as Akonadi Resources, agents which transport data between the cache and the data's actual persistant storage locations, e.g. files.
The KDE client libraries for Akonadi provide convenience classes to ease development of generic agents as well as the resource subtype. The KDE PIM project provides a set of commonly required implementations as part of their runtime module.
The application category refers to the usual end user visible application, e.g. address book, calendar or e-mail program. Implementations of this category can sometimes be referred to as Akonadi Clients, since agents can be seen as part of the server-like functionality, both from the point of view of users as well as application developers.
The KDE client libraries for Akonadi provide both a low level job based API as well as high level data models, views and standard actions.