Zequent Edge SDK
The Edge SDK is used to build custom edge adapters that connect physical assets such as drones, docks, vehicles, and other remote devices to Zequent. A custom adapter exposes a consistent command and telemetry interface to the platform and to Client SDK consumers.
Tech Specs
| Requirement | Version |
|---|---|
| Java | 25 |
| Maven | 3.9.9+ |
| Quarkus | 3.x |
| gRPC | via Quarkus gRPC extension |
Overview
The Edge SDK sits between the physical device and the Zequent platform services. An edge adapter is a standalone Quarkus application that depends on the Edge SDK library and provides concrete implementations for the commands relevant to its hardware.
Core Concepts
EdgeClient
The central entry point of the SDK. It is a CDI-managed bean that gives you access to the configured serial number, edge configuration, and the EdgeAdapterService instance.
EdgeAdapterService
The primary interface that every edge adapter must implement. It declares commands for flight control, dock management, camera operations, manual control, live streaming, custom commands with their capabilities, cancelling a running command, and more. All methods come with a default NOT_IMPLEMENTED return so you only need to override what your hardware supports.
ConnectorService
Provides access to the platform's Connector Service over gRPC: pair and manage your asset(s), report the commands your adapter supports to the Skill Registry, and look up schedulers and organizations.
LiveDataService
Manages persistent gRPC telemetry streams. It lets you push asset and sub-asset telemetry data to the Live Data Service using either the POJO-based API or the raw Proto-based API.
MissionAutonomyService
Communicates with the Mission Autonomy Service over gRPC to look up scheduler definitions. Work reaches your adapter as commands the platform calls into it (see EdgeAdapterService), not by the adapter polling this service. Applications and Skills are authored in the Admin Console and run through the Client SDK, not the Edge SDK.
Available Documentation
| Document | Description |
|---|---|
| DJI Adapter Deployment | Deploy the DJI edge adapter container via Docker or Kubernetes |
| Quickstart | Get a new edge adapter project up and running in minutes |
| Configuration | All configuration properties and environment variable mappings |
| Edge Adapter | Implementing the EdgeAdapterService interface |
| Live Data | Producing telemetry data streams |
| Connector | Asset and resource management via the Connector Service |
| Mission Autonomy | Scheduler lookup, and how Skill executions reach your adapter |
| Models Reference | Request, response, and telemetry data model reference |
| Go Edge SDK | Go equivalent — a narrower API surface than this one, see its status note |
Quick Start
Add the Edge SDK dependency to your project:
<dependency>
<groupId>com.zqnt.sdk</groupId>
<artifactId>edge-java-sdk</artifactId>
<version>2.0.0</version>
</dependency>
Configure your edge in application.properties:
zequent.edge.endpoint=localhost:9001
zequent.edge.sn=YOUR_DEVICE_SERIAL_NUMBER
zequent.edge.asset-type=ASSET_TYPE_DOCK
zequent.edge.asset-vendor=ASSET_VENDOR_DJI
Every call to the platform carries the adapter's edge credential, ZQNT_EDGE_TOKEN, and the
adapter checks the platform's calls into it with ZQNT_PLATFORM_PUBLIC_KEY — see
Configuration.
Implement the adapter interface:
@ApplicationScoped
public class MyEdgeAdapter implements EdgeAdapterService {
@Override
public CompletableFuture<CommandResult> takeOff(TakeOffRequest request) {
// your hardware-specific takeoff logic
return CompletableFuture.completedFuture(
CommandResult.success("Takeoff initiated", request.getSn())
);
}
// override only the commands your device supports
}
Build and run your adapter as a container image:
docker run --env-file .env -p 9001:9001 your-registry/my-edge-adapter:latest
For a complete walkthrough, see the Quickstart Guide.