A method for automatically configuring a High Availability, HA, middleware that manages high availability of a state-aware software application to be added to a system, the method comprising the steps of: receiving, by a computer system, a user input that specifies availability requirements and information of the state-aware software application, wherein the availability requirements include at least a checkpoint service that enables the state-aware software application to save and retrieve its state; identifying a checkpoint agent for providing the checkpoint service to the state-aware software application, wherein the checkpoint agent includes a first interface to the state-aware software application and a second interface, different from the first interface, to the HA middleware, wherein the first interface allows the checkpoint agent to interact with the state-aware software application by receiving a state from the state-aware software application for storing purposes and by receiving checkpoint requests from the state-aware software application for retrieving the saved state, wherein the second interface allows the checkpoint agent to interact with the HA middleware and uses the checkpoint service of the HA middleware to save the state from the state-aware software application by implementing the Application Programming Interface, API, of the HA middleware, and wherein the HA middleware maintains its direct control over lifecycle management of the applications by directly installing, instantiating and monitoring the state-aware software application without the application implementing an API; and generating a configuration of the HA middleware that satisfies the availability requirements, based on the information of the state-aware software application such that the HA middleware offers the checkpoint service to the state-aware software application through the checkpoint agent and directly manages lifecycles of the state-aware software application. receiving, by a computer system, a user input that specifies availability requirements and information of the state-aware software application, wherein the availability requirements include at least a checkpoint service that enables the state-aware software application to save and retrieve its state; identifying a checkpoint agent for providing the checkpoint service to the state-aware software application, wherein the checkpoint agent includes a first interface to the state-aware software application and a second interface, different from the first interface, to the HA middleware, wherein the first interface allows the checkpoint agent to interact with the state-aware software application by receiving a state from the state-aware software application for storing purposes and by receiving checkpoint requests from the state-aware software application for retrieving the saved state, wherein the second interface allows the checkpoint agent to interact with the HA middleware and uses the checkpoint service of the HA middleware to save the state from the state-aware software application by implementing the Application Programming Interface, API, of the HA middleware, and wherein the HA middleware maintains its direct control over lifecycle management of the applications by directly installing, instantiating and monitoring the state-aware software application without the application implementing an API; and generating a configuration of the HA middleware that satisfies the availability requirements, based on the information of the state-aware software application such that the HA middleware offers the checkpoint service to the state-aware software application through the checkpoint agent and directly manages lifecycles of the state-aware software application.