Skip to main content

Overview

The ART Development Kit (ADK) is the primary toolkit for connecting your applications to the platform’s real-time infrastructure. It abstracts away the complexities of WebSocket connections, authentication, and channel permissions, allowing developers to focus on building features instead of managing the groundwork.

Traditional methods of managing connections and messaging can quickly become difficult to scale and maintain. The ADK solves this problem by providing a ready-to-use, developer-friendly interface that ensures reliable connectivity, role-based security, and optional integration with AI-driven orchestration flows.

Figure 1: ADK functioning

Figure 1: ADK functionality

Why to choose ADK?

  • Simplified Connection Management: Handles establishing, maintaining, and reconnecting WebSocket connections, removing the need for custom reliability logic.

  • Secure Authentication: Built-in support for JWT tokens and client credentials ensures every connection and message exchange is authorized and verified.

  • Role-Based Access Control: Enforces permissions at the channel level, so applications can only read or write messages according to their assigned roles.

  • Channel-Oriented Communication: Provides structured ways to subscribe, publish, and manage different types of channels: broadcast, targeted, group, shared object or secure; based on your use case.

  • AI Orchestration Integration: Seamlessly connects to orchestrated channels, routing messages through AI-driven workflows for enriched responses and intelligent decision-making.

  • User Presence Tracking: Monitors and broadcasts active user sessions, enabling features like online/offline indicators, presence-aware notifications, and session analytics.

  • Low Latency Messaging: Designed for real-time use cases, the ADK delivers near-instant communication with minimal overhead.

  • Scales to Thousands of Concurrent Connections: Optimized to support high concurrency, making it suitable for enterprise workloads and large-scale deployments.

  • Cross-Platform Support (Coming Soon): The ADK is being developed for multiple environments, including JavaScript, Go, Python, and more, ensuring consistent experience across web, mobile, and backend.

What we offer?

The ADK delivers comprehensive real-time communication capabilities designed for modern applications. Here's what you can achieve:

FunctionalityDescription
Channel SubscriptionSubscribe to channels to send and receive messages. Supports different channel types including broadcast, targeted, group, shared object and encrypted.
Message SendingSend messages to channels using push. Supports structured payloads and targeted delivery to specific users.
Message ListeningUse listen to capture all incoming messages or bind to react to specific event types.
Presence TrackingFetch and monitor the presence of users (online, offline, active sessions). Useful for user availability indicators and analytics.
Targeted CommunicationDeliver messages directly to selected users within a channel, enabling personalized and efficient real-time interactions.
Secure ConnectionsEnd-to-end encrypted channels for private and secure communication
Shared Object ChannelsProvides CRDT-backed collaborative data structures. Supports reading, querying, subscribing to live updates, and performing operations like state proxy updates and array modifications.
Connection ManagementEstablish, maintain, and close secure WebSocket connections. Provides event hooks (open, close, error) and automatic reconnection handling.
Interceptor IntegrationIntegrate custom interceptors to preprocess or post-process messages and events, allowing you to add validation, transformations, or custom logic into the data flow.
Scalable PerformanceOptimized to handle thousands of concurrent connections with minimal latency.

Key Methods

These are the essential methods you'll use to interact with the ADK:

MethodDescription
connect()Authenticate and establish a persistent connection with the ART server.
subscribe(channelName)Subscribe to a specific real-time channel to enable sending and receiving messages.
push(event, data, opts)Publish or send messages/events with associated data to a subscribed channel.
listen(event)Listen to published messages/events in the subscribed channel
intercept(event, handler)Intercept and process custom events within the messaging pipeline.
fetchPresence()Check presence information by returning a list of connected users.
encrypt()Encrypt message or data payloads using cryptographic keys for secure transmission.
decrypt()Decrypt encrypted message or data payloads using cryptographic keys.