Akonadi is a storage service for personal information management (PIM) data and metadata. It is one of the “pillars” (core technologies) behind the KDE SC 4 project, although it is designed to be used in any desktop environment. It is extensible and provides concurrent read, write, and query access.
Akonadi provides unique desktop-wide object identification and retrieval. It functions as an extensible data storage for all PIM applications. In KDE 3 each PIM application had different data storage and handling methods, which led to several implementations of essentially the same features. Besides data storage, Akonadi has several other components including search, and a library (cache) for easy access and notification of data changes.
Akonadi communicates with servers to fetch and send data instead of applications through a specialized API. Data can then be retrieved from Akonadi by a model designed to collect a specific data (mail, calendar, contacts, etc). The application itself is made of viewers and editors to display data to the user and let them input data. Akonadi also supports metadata created by applications.
Because Akonadi takes care of data storage and retrieval, which are traditionally the difficult parts of creating a PIM application, development of PIM applications is made much easier. In fact, the Mailody developer Tom Albers demonstrated how a mail reader could be created in only 10 minutes using Akonadi.
- Common PIM data cache
- Type agnostic design
- Generic offline access, change recording and replay
- Generic conflict detection and resolution
- Resources are groupable by profile
- Items composed of independently retrievable multiple parts
- Zero-copy retrieval possible
- Concurrent access allows background activity independent of UI client
- Syncing mail, calendar, addressbooks to remote servers
- Syncing with mobile devices
- Permits semantic desktop infrastructure to access PIM data
- Out-of-process search
- Multi-process design
- Crash isolation
- Large items can't block whole system
- Linkage by IPC allows proprietary components
- Thin client installations can share components for scalability