Infrastructure & AWS Integration
The FleetCore platform relies on a distributed AWS infrastructure to handle secure communication, data storage, and real-time streaming. This page explains how these components interact and why they were chosen.
System Architecture Design
Below is the current architecture design for the FleetCore platform.
Key AWS Components
1. AWS IoT Core
IoT Core handles the secure, bidirectional communication between the FleetCoreServer and the OnboardAgent.
- How it works: Each drone is provisioned as an "IoT Thing" with unique X.509 certificates.
- Why IoT Jobs? We use IoT Jobs to deploy missions. This ensures that even if a drone is temporarily offline, it will receive the mission command as soon as it reconnects. The job lifecycle (PENDING -> IN_PROGRESS -> SUCCEEDED) provides built-in status tracking.
2. Kinesis Video Streams & WebRTC
Enables low-latency video streaming and manual control from the FleetCoreDesktop app to the drone.
- How it works: KVS Signaling Channels are used to perform the WebRTC handshake. Once the handshake is complete, a Peer-to-Peer (P2P) connection is established.
- Why WebRTC? It bypasses the server entirely for video data, ensuring the lowest possible latency for manual flight operations.
3. SQS & Lambda
Telemetry and detections are handled asynchronously to ensure system stability.
- SQS (FleetCoreTelemetry): Acting as a buffer, it decouples the high-frequency telemetry incoming from the drones from the processing speed of the Quarkus server.
- Lambda (process-detection): Triggered by the AWS IoT routing engine when a drone publishes a detection message. It populates the database with the detection metadata and S3 image reference, ensuring the main
FleetCoreServerremains stateless by offloading database writes.
4. Amazon Cognito
Manages the authentication for platform operators (Coordinators).
- How it works:
FleetCoreDesktopauthenticates with Cognito to receive a JWT. This token is then used to authorize REST API calls to theFleetCoreServer.