Core Architecture
The ADS framework uses a distributed architecture that ensures scalability, reliability, and real-time communication between publishers and subscribers.

Architecture Components
-
Data Sources trigger events either directly or through webhooks, polling, or other mechanisms.
- These events are captured by ADS Publishers, which authenticate and forward them to the secure ADS publisher environment.
-
Within the Secure ADS Publisher Environment, events flow through several key components:
-
RabbitMQ serves as the message queue, receiving events from authenticated ADS Publishers and ensuring reliable message delivery to the ADS Bridge.
-
ADS Bridge acts as the central hub, processing messages from RabbitMQ and broadcasting them to connected subscribers. The bridge includes:
- Traefik: Functions as a reverse proxy providing sticky sessions and load balancing across multiple ADS Bridge instances for production scaling
- Socket.io + Redis Adapter: Broadcasts events to all connected agents (ADS Subscribers) while supporting horizontal scaling
- Express: Exposes health and stats endpoints for system monitoring
-
ADS Subscribers connect to the bridge via WebSocket connections to receive real-time events and execute their respective actions.
ADS Subscribers should only connect through the Traefik reverse proxy to ensure effective load balancing across bridge instances.
This architecture enables the “write once, connect many” philosophy, allowing a single publisher to serve unlimited subscribers across different teams and technologies.
Subscriber Pools
In order to accomodate scalability, both at the publisher and subscriber level, ADS uses the concept of subscriber pools.
This enables multiple scaled out instances of a subscriber application to connect to the ADS Bridge and have events correctly routed to them while ensuring that each event is processed only once and not duplicated across instances.
All you have to do as a subscriber, is to provide a unique Subscriber Pool ID generated using our tool when connecting to the ADS Bridge.
This allows you to scale your subscriber application horizontally, with each instance connecting to the same pool.