This document provides a high-level overview of the Ava SDK's architecture, explaining the core components and how they interact with each other.
This document provides a high-level overview of the Ava SDK's architecture, explaining the core components and how they interact with each other. The SDK serves as a bridge between client applications and the Ava Protocol's AVS (Actively Validated Services), enabling developers to create, manage, and monitor workflows.
For authentication methods, see Authentication. For detailed information about workflows, see Workflow System.
The Ava SDK JS is designed with a layered architecture that abstracts the complexity of gRPC communication with the AVS service. At its core, the SDK consists of a Client class that exposes a user-friendly API, factories for creating workflow components, and type definitions for ensuring type safety.
Sources:
The SDK consists of several core components that work together to provide a seamless experience for developers.
The Client class is the main entry point for interacting with the AVS service. It handles authentication, workflow management, execution tracking, and secret management.
Sources:
The SDK provides factory classes for creating workflow components:
Sources:
The SDK uses a separate @avaprotocol/types package to define type definitions for workflows, nodes, triggers, and other components. This ensures type safety and reduces errors during development.
Sources:
The SDK uses gRPC for communication with the AVS service. This provides efficient, type-safe communication with strong contract guarantees.
Sources:
Workflows are the core concept in the Ava SDK. A workflow consists of nodes (tasks) connected by edges (relationships) and is initiated by a trigger.
Sources:
The SDK supports various node types for different operations:
Sources:
Workflows can be initiated by various trigger types:
Sources:
When a workflow is executed, it creates an execution record that contains steps corresponding to the execution of individual nodes:
Sources:
The SDK supports two methods of authentication:
Sources:
The SDK integrates with smart wallet functionality, allowing workflows to execute blockchain transactions:
Sources:
The SDK provides functionality for managing secrets that can be used in workflows:
Sources:
The SDK includes comprehensive testing capabilities to ensure reliability:
Sources: