Logically, an xApp is a entity that implements a well-defined function. Mechanically, an xApp is a K8s pod that consists one or multiple containers. In order for an xApp to be deployable, it needs to have an xApp descriptor (JSON) that describes the xApp's configuration parameters and information the RIC platform needs to configure the RIC platform for the xApp. The xApp developer will also need to provide a JSON schema for the descriptor.

In addition to these basic requirements, an xApp may do any of the following:

The lifecycle of xApp development and deployment consists of the following states: