A system (100, 500) comprising: a processor; a software container (110, 510) onto which software components (112B, 512B) can be deployed, wherein each component is packaged in a Java archive file and a framework of the software container (110, 510) expects a component's JAR file to contain - a definition of the component's configuration parameters; - a list of message types the component is able to consume and produce; and - a user interface which enables an administrator to configure the component's parameters; the system (100, 500) further comprising a memory storing processor-executable process steps executable by the processor to cause the system (100, 500) to: execute a first version (112B, 512B) of a software component within the software container (110, 510); during execution of the first version (112B, 512B) of the software component, install a second version of the software component in the software container (110, 510), wherein the second version is created and activated, and the activation includes the second version to subscribe to incoming messages; during execution of the first version (112B, 512B) of the software component, register supported message types of the second version of the software component; during execution of the first version (112B, 512B) of the software component, execute the second version of the software component in the software container (110, 510), wherein the new component buffers jobs instead of processing them directly; execute the first version (112B, 512B) of the software component to stop accepting incoming messages, to complete processing of jobs associated with already-accepted messages, and to transmit a handover message to the second version of the software component comprising information associated with the completed jobs; and execute the second version of the software component to receive the handover message and to remove the completed jobs from a buffer associated with the second version of the software component. a processor; a software container (110, 510) onto which software components (112B, 512B) can be deployed, wherein each component is packaged in a Java archive file and a framework of the software container (110, 510) expects a component's JAR file to contain - a definition of the component's configuration parameters; - a list of message types the component is able to consume and produce; and - a user interface which enables an administrator to configure the component's parameters; - a definition of the component's configuration parameters; - a list of message types the component is able to consume and produce; and - a user interface which enables an administrator to configure the component's parameters; the system (100, 500) further comprising a memory storing processor-executable process steps executable by the processor to cause the system (100, 500) to: execute a first version (112B, 512B) of a software component within the software container (110, 510); during execution of the first version (112B, 512B) of the software component, install a second version of the software component in the software container (110, 510), wherein the second version is created and activated, and the activation includes the second version to subscribe to incoming messages; during execution of the first version (112B, 512B) of the software component, register supported message types of the second version of the software component; during execution of the first version (112B, 512B) of the software component, execute the second version of the software component in the software container (110, 510), wherein the new component buffers jobs instead of processing them directly; execute the first version (112B, 512B) of the software component to stop accepting incoming messages, to complete processing of jobs associated with already-accepted messages, and to transmit a handover message to the second version of the software component comprising information associated with the completed jobs; and execute the second version of the software component to receive the handover message and to remove the completed jobs from a buffer associated with the second version of the software component. execute a first version (112B, 512B) of a software component within the software container (110, 510); during execution of the first version (112B, 512B) of the software component, install a second version of the software component in the software container (110, 510), wherein the second version is created and activated, and the activation includes the second version to subscribe to incoming messages; during execution of the first version (112B, 512B) of the software component, register supported message types of the second version of the software component; during execution of the first version (112B, 512B) of the software component, execute the second version of the software component in the software container (110, 510), wherein the new component buffers jobs instead of processing them directly; execute the first version (112B, 512B) of the software component to stop accepting incoming messages, to complete processing of jobs associated with already-accepted messages, and to transmit a handover message to the second version of the software component comprising information associated with the completed jobs; and execute the second version of the software component to receive the handover message and to remove the completed jobs from a buffer associated with the second version of the software component.