KMail dependence on Akonadi

Kevin Krammer krammer at
Sun Jul 9 16:44:08 BST 2017

On Saturday, 2017-07-08, 11:58:02, Aleksey Midenkov wrote:
> On Sat, Jul 8, 2017 at 11:34 AM, Kevin Krammer <krammer at> wrote:
> > On Saturday, 2017-07-08, 02:37:22, Aleksey Midenkov wrote:
> >> By what purpose there is KMail dependence on other services?
> > 
> > The purpose if the dependency is to make KMail work.
> > I.e. in order for KMail to display or send emails it needs to access
> > emails.
> Can't it work via shared library, e.g. SQLite or some NoSQL technologies?

I am not sure what you are referring to, but the programs all use a shared 
library to implement the communication with the service.

That way each client doesn't need to know too much about how everything works, 
for them it is a tree of folders and data in folders, e.g. emails in email 

> > Access to data such as emails, contacts, calendar, etc., is shared between
> > applications through the Akonadi service (PIM data, personal information
> > management).
> Is it common case? I mean are there many people who use contacts,
> calendar (what else?). Or there are majority who just use e-mail.

It is a very common use case.

Theoretically an email program could always just do input completion on 
addresses of people that it has received emails from, but most have an 
addressbook nevertheless.

Thunderbird even has a calendar extension called Lightning.

Contacts/addressbook are also used by other forms of communcation programs, 
e.g. chat, software telephone, audio/video conferencing.

Additionally, as mentioned before, work related tasks, such as invoicing, 
mailing (as in post mail) and things like that.
Aside from businesses, users can have these kind of work loads for 
foundations, clubs, fan associations, etc.

I.e. quite common when groups of people do stuff together :-)

> Can't data be shared via dynamic library API? AFAIK no-server
> databases can support multi-process R/W access.

The safest, most trouble free, way of accessing stored data is via a single 
Mutiple processes accessing e.g. the same files or directories can be done via 
a wide range of file locking mechanisms, but they are all problematic, depend 
on the file system in question.

Data gets easily overwritten (two processes thinking they have the lock) or 
not writable anymore (stale locks).

An earlier version of PIM data sharing used that approach and it was messy.

> Why you invented some
> service if there are commonly used SQL servers?

Not sure what you mean, the Akonadi services is using standard databases for 
its data management needs: MySQL, PostgreSQL, SQLite are options as far as I 

Kevin Krammer, KDE developer, xdg-utils developer
KDE user support, developer mentoring
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part.
URL: <>

More information about the kde mailing list