KMail dependence on Akonadi

Kevin Krammer krammer at
Tue Jul 11 14:31:36 BST 2017

On Tuesday, 2017-07-11, 16:14:18, Aleksey Midenkov wrote:
> On Tue, Jul 11, 2017 at 2:53 PM, Kevin Krammer <krammer at> wrote:
> > On Monday, 2017-07-10, 03:26:08, Aleksey Midenkov wrote:
> >> On Sun, Jul 9, 2017 at 6:44 PM, Kevin Krammer <krammer at> wrote:
> >> > On Saturday, 2017-07-08, 11:58:02, Aleksey Midenkov wrote:
> >> >> On Sat, Jul 8, 2017 at 11:34 AM, Kevin Krammer <krammer at> 
> >> >> > On Saturday, 2017-07-08, 02:37:22, Aleksey Midenkov wrote:
> >> ...
> >> 
> >> >> 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 remember.
> >> 
> >> Then why there is additional proxy process (Akonadi) between KMail and
> >> DBMS? What special functions this Akonadi service does that require it
> >> to be additional process? Why can't it be just shared library that
> >> will adapt this PIM API (so called Akonadi) to DBMS services? In other
> >> words: put Akonadi as shared library inside KMail, Calendar, etc.
> >> instead of separate process.
> > 
> > A database server is essentially useless without data and none of them can
> > access stored data other than their own.
> > 
> > Extending an existing database server to be able to connect to an IMAP
> > server, read a local maildir, connect to a CalDav server or read a local
> > ical file would essentially require forking that server's code base and
> > maintaining it from there on.
> That surely would be bad idea. But this does not contradict to what I
> wrote: it does not have to be a daemon. It can be just driver library
> (like ODBC) that is loaded into client application and provides PIM
> API to any existing data technologies, not only DBMS, but IMAP,
> maildir, CalDav, etc. (what's the difference). So I'll repeat my
> question: what are special functions of Akonadi that require it to be
> additional process?

I've answered that earlier but maybe it was in a reply to somebody else's 

A mediator process is the only reliable way to ensure data access integrity.

I.e. mechanism that try to allivate the problem of concurrent access to files 
by multiple processes , e.g. file locking, had proven to cause issues, e.g. 
stale lock files in the case of file locks.

There are also external restrictions to consider, e.g. maximum number of 
connections per user on a remote server. Easy to control in a single process, 
very difficult to control over multiple processes.

Akonadi is therefore the process that is needed, the DBMS is the optional one, 
e.g. using SQLite or MySQL/Embedded for handling that part inside the main 

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