At 310, a microservice 120 makes a system call to another microservice 120 and to the process management microservice 120, which includes the request context. Whenever the state of a microservice 120 changes, the state is written to the database 112. Before passing the process to the requested microservice 120, the kernel microservice 125 checks the availability of the requested microservice 120. If the requested microservice 120 is available, the kernel microservice 125 will dispatch it. Otherwise, the kernel microservice 125 places the requesting microservice 120 in a wait state until the requested microservice 120 is available. At 315, process management 120 validates the request context.
At 320, if the request context is valid, process management 120 passes the request to the kernel 125 (321). If the request context is not valid, then at 345 the request is rejected with an error to the requestor. At 322 the kernel 125 queries the microservices manager 110, which searches the database 112 for the availability and state of the microservice 120 that is the destination of the request. At 323, if the service is not available, processing returns to 322 to wait for the availability of the requested service. When the service is available, the kernel 125 passes the request to the destination microservice 120 over the API 115 corresponding to the destination microservice 120 (325). At 327, the converter 130 at the destination microservice examines the request context to determine if conversion is needed. At 340, the request is executed.