Workflow API
The following section will give you a brief overview about the architecture defined by the Imixs Workflow API. Next you find a short description of the individual workflow compoents and their concepts. As shown in Fig. 1, the framework consists of only a few interfaces and classes. So the concept is very easy to understand and can be implemented technology independend in different ways.

The WorkflowManager is the uppermost layer of each workflow system based on the Imixs Workflow API. A WorkflwoManager provides methods to process a workitem, find a workitem or remove a worktitem. A workitem is the process instance inside a Workflow Management System which is conrolled by the WorkflowManager. So the WorkflowManager works as a controller that manages the worktiems to be processed inside the Workflow System. Each implementation of a WorkflowMager needs to provide functions to persist workitems into a Database and later on fetches workitems out from a database.
As an application developer you mostly interact with the WorkflowManager.
The Model interface defines the workflow model which describes how a process instance should be processed by the WorkflowManager. For this purpose, the model provides functions for finding Process Entities and Activity Entities. A process entity defines the status of a process instance. So a process entity is represended by a Node in a graphical workflow model. The Activity entity defines the actions wich should be performed on a process instancte during the processing method and also the new status of a Workitem after processing is finished. So the Activity Entity is typical represendted by an ege in graphical Workflow Model. There are different informations stored in each Process and Activity Entity to provide the Workflow compoents with processing introductions. The Model is typical controled by the WorkflowManager implementation. And there are different ways a Model can be implemented by a Workflow Management System. The Imixs Workflow provides an eclipse based graphical editor to define workflow models.

Plugins are workflow components which defines the behaivor of the workflow system. A Plugin is called by the WorkflowManager to process a running process instance. A plugin can execute general and also application specific workflow functions. Plugins are reusable components in a Workflow Management System and typical used by a application developer to design the behaivor of the workflow appliction. The Imixs Workflow API provides a set of general Plugins like the HitoryPlugin or the AccessPlugin which can be used in each workflow Management System. But there are also framework spcific plugins available like the MailPlugin which is responsible to send an Email notification during a workflow step. See the Plugins section for more Informations about the generic Imixs Workflow Plugins defined by this API.
The WorkflowKernel implements the core functionality of the workflow management system. The WorkflowKernel controls the status of each process instance. When a WorkItem is processed by the WorkflowManager, the WorkflowKernel controlles the flow of the workitem through the wokflow model. So the WorkflowKernel is a kind of Statemachine inside the workflow management system. The WorkflowKernel is also responsible to provide teh workflow plugins with informations about the process intstance and controlls the execution of each workflow plugin.
As an application developer you did not interact with the WorkflowKernel as this component is typical encapsulated by the WorkflowManager.