md_doc_help_elektra-plugins-ordering(3) ordering of plugins

Error List

So every backend additionally needs a third array that is executed in error scenarios during kdbSet(). Plugins responsible for the cleanup, rollback or error notification are inserted into it.

The resolver plugin requires this error list to do a proper rollback. Another use case is logging after a failure has happened.


The ordering of plugins inside these three arrays is controlled by elektra-contracts(7). Each of the three arrays has ten slots. These slots have names to be referred to in the contract.

Here you see a table that contains all names:

    0     prerollback       getresolver         setresolver  
    1     prerollback       pregetstorage      presetstorage 
    2     prerollback       pregetstorage      presetstorage 
    3     prerollback       pregetstorage      presetstorage 
    4     prerollback       pregetstorage      presetstorage 
    5      rollback            getstorage         setstorage 
    6    postrollback      postgetstorage      precommit     
    7    postrollback      postgetstorage         commit     
    8    postrollback      postgetstorage     postcommit     
    9    postrollback      postgetstorage     postcommit     

how the placement is influenced using infos/placement, infos/ordering and infos/stacking as described in CONTRACT.ini.