KDE PIM/Akonadi Next/Current Akonadi

From KDE Community Wiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Original Akonadi Design

Reasons for akonadi:

  • commond database for applications (interaction)
  • separation from service access to data-access (shared backends between applications)
  • framework to run backround synchronization processes
  • editable offline cache

Forces for original design:

  • stability through separation of processes
  • IMAP compatibility (deprecated)
  • Backwards compatibility through ASAP protocol (database separation)
  • Handling of external payloads (necessary in SQL), with ASAP protocol (no direct db access)
  • Dynamic requests of payload parts from backend (online imap, parts system)
  • separate writer process to make absolutely sure there is no corruption in the storage layer

Existing Akonadi Features

  • Server-Side searches via resource
  • Referenced collections as a temporary subscription (causing immediate syncronization of remote data), with automatic cache expiry once the last application session closes.

Domain Objects

Item:

  • uid
  • revision
  • rid
  • remoteRevision
  • gid
  • parts
  • mimetype
  • datetime
  • atime
  • dirty
  • size
  • flags
  • tags
  • parentCollection
  • storageCollection

Collection:

  • uid
  • remoteId
  • remoteRevision
  • name
  • parent
  • resource
  • cachePolicy
    • inherit
    • check interval
    • cache timeout
    • sync on demand
    • local parts
  • queryString
  • isVirtual
  • queryAttributes
  • queryCollections
  • enabled
  • syncPref
  • displayPref
  • indexPref
  • referenced
  • content mimetypes
  • attributes
    • display name/color/
    • access rights
  • statistics

Tag:

  • uid
  • gid
  • parent
  • type

Relation:

  • left
  • right
  • type

Commands

Item:

  • AKAPPEND
  • APPEND
  • COPY
  • FETCH
  • LINK
  • MERGE
  • MOVE
  • REMOVE
  • STORE

Collections:

  • CAPABILITY
  • COLCOPY
  • COLMOVE
  • CREATE
  • DELETE
  • EXPUNGE
  • LIST
  • MODFIY
  • STATUS

Misc:

  • LOGIN
  • SELECT
  • SUBSCRIBE
  • TRANSACTION

Search:

  • SEARCH
  • SEARCHPERSISTENT

Resource:

  • RESOURCESELECT

Relations:

  • RELATIONFETCH
  • RELATIONREMOVE
  • RELATIONSTORE

Tags:

  • TAGAPPEND
  • TAGREMOVE
  • TAGFETCH
  • TAGSTORE