Microservices 
The MAVLink "microservices" define higher-level protocols that MAVLink systems can adopt in order to better inter-operate. For example, QGroundControl, ArduPilot and PX4 autopilots all share a common Command Protocol for sending point-to-point messages that require an acknowledgment.
The microservices are used to exchange many types of data, including: parameters, missions, trajectories, images, other files. If the data can be far larger than can be fit into a single message, services will define how the data is split and re-assembled, and how to ensure that any lost data is re-transmitted. Other services provide command acknowledgment and/or error reporting.
Most services use the client-server pattern, such that the GCS (client) initiates a request and the vehicle (server) responds with data.
The main microservices are shown in the sidebar (most are listed below):
- Heartbeat/Connection Protocol
 - Mission Protocol
 - Parameter Protocol
 - Extended Parameter Protocol
 - Command Protocol
 - Manual Control (Joystick) Protocol
 - Camera Protocol v2
 - Camera Protocol v1 (Simple Trigger Protocol)
 - Gimbal Protocol v2
 - Arm Authorization Protocol
 - Illuminator Protocol
 - Image Transmission Protocol
 - Offboard Control Protocol
 - File Transfer Protocol (FTP)
 - Landing Target Protocol
 - Ping Protocol
 - Battery Protocol
 - Terrain Protocol
 - Tunnel Protocol
 - Open Drone ID Protocol
 - High Latency Protocol
 - Component Metadata Protocol (WIP)
 - MAVLink Id Assignment (sysid, compid)
 - Payload Protocol
 - Traffic Management (UTM/ADS-B)
 - Events Interface (WIP)
 - Standard Flight Modes
 - Time Synchronization
 

