# ICaiBus - Internet Computer AI Bus - PubSub made Easy on the IC

**URL:** <https://forum.dfinity.org/t/icaibus-internet-computer-ai-bus-pubsub-made-easy-on-the-ic/40606>\
**Category:** Showcase\
**Created:** [January 27, 2025, 8:46pm UTC](https://forum.dfinity.org/t/icaibus-internet-computer-ai-bus-pubsub-made-easy-on-the-ic/40606 "2025-01-27T20:46:58Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![PanIndustrial](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/panindustrial/32/13740_2.png) [@PanIndustrial](https://forum.dfinity.org/u/PanIndustrial)\
**Post date:** [January 27, 2025, 8:46pm UTC](https://forum.dfinity.org/t/icaibus-internet-computer-ai-bus-pubsub-made-easy-on-the-ic/40606/1 "2025-01-27T20:46:58Z")

</div>

Hello everyone,

We’re excited to announce the alpha release of **ICaiBus** (Internet Computer Artificial Intelligence BUS)(pronounced I-KY-Bus)—a new messaging bus platform for the Internet Computer, developed by Pan Industrial with support from a DFINITY Developer Grant!

 ![image](https://us1.discourse-cdn.com/flex023/uploads/dfn/original/3X/5/c/5c2ca41beeefeec8d27ac7f598c6e985d628a1ff.jpeg)

* * *

## What is ICaiBus?

A messaging “bus” in computing provides a simpler way to handle events between different components in a system. Rather than connecting each service to every other service that needs to know about its events, the bus allows publishers to “announce” events once and subscribers to independently “listen” for those events.

**Why does this matter?**

- It _drastically_ simplifies development: You no longer need to coordinate external systems to confirm how events are delivered, as long as you stick to the published interface.
- It supports real-time data and monetization: ICaiBus makes it easy to handle streaming events and even monetize them if your dapp chooses to.

* * *

## A Big Thanks to the Event Utility Working Group

We couldn’t have built this platform without the help of the **Event Utility Working Group**. Their collaboration and contributions have been integral, and contributors to that group will be considered co-developers of ICaiBus. We’ll be reconvening this working group now that we have sample libraries ready, and we invite everyone interested in the next steps to join us. (See the end of this message)

* * *

## Architecture Overview

### 1. Orchestrator

The **Orchestrator** is our system’s “command center.”

- Manages which publications (event streams) are available.
- Keeps track of who has subscribed to each publication.
- Coordinates with Broadcasters to ensure messages are relayed to the correct subscribers.

### 2. Broadcasters

The **Broadcasters** live on each subnet:

- Responsible for delivering messages to subscriber canisters on their subnet.
- Relay messages across subnets if the target subscriber is on a different subnet.
- They collate and batch messages to reduce traffic (rather than sending them one-by-one).

### 3. Publisher

The **Publisher** :

- Declares what messages it will send and who is allowed to send them.
- Collates and broadcasts event streams.
- Allows you to emit a single event, leaving ICaiBus to handle distribution to all subscribers.

### 4. Subscriber

Any canister on the IC can be a **Subscriber** :

- Subscribes (permissionlessly) to published events.
- Can apply filters (e.g., ignore certain messages, skip messages, etc.) to manage bandwidth.
- Will soon have the option to recover missed messages if a canister goes offline.

* * *

## Monetization and Future Features

- **Instant monetization** : Publishers can optionally log to an ICRC-3 ledger, offering private feeds or tiered/prioritized access to public streams or maintain a private stream and charge a subscription.
- **Security and encryption** : Once the local replica enclaves are available, we plan to enable end-to-end encrypted enterprise-grade messaging and logging.
- **Utility token** : We’re exploring a network issued, team supporting, fair-launched, utility token model to foster network growth and community involvement.
- **AI synergy** : ICaiBus aims to support AI agents (on-chain or off-chain), enabling them to interact in a cryptographically secure and self-sustaining economic environment.

* * *

## Demo and Alpha Release

We’re launching our **Alpha** with a simple demo publishes the ICP transaction stream and allows for creating a whitelists of funding addresses and splitting ICP payments across that list:

- **Broadcasters** are running on two different subnets.
- **Anyone** can subscribe to the ICP transaction stream.
- Subscriptions require you to send back cycle costs as you receive messages. A provided Motoko subscriber component handles this automatically—just supply minimal boilerplate and you’re set!

### How to Get Added to the Alpha Tester List

If you send at least than **100,000 e8s** of ICP (0.001 ICP) to the address

```auto
e9dc3bbbcb45479709e8ef512f6c8a66d6593cbb1b8621ff9cdbde917d6da9aa 

```

(Alternate principal: `2rssh-v35xr-d2rhf-kw3pb-eh5ah-vfywx-rdbhr-odnlx-un77i-lujm7-tae`)  
you will be added to our alpha tester list on **both** subnets.

If you send ICP to the address

```auto
fdf2951f98f74c82737153dfdfacff0ede58a827578777e0ad7c8cfbd16c6e81 

```

(Alternate principal: `arnqk-riaaa-aaaae-qakmq-cai`)  
your ICP will be **distributed evenly** across everyone on the list.

**Demo Canisters** (for reference):

- **Orchestrator** : `wtiga-eaaaa-aaaae-qajxa-cai`
- **Watcher (Publisher)**: `w5kli-7qaaa-aaaae-qajwa-cai`
- **Broadcaster Subnet 1** : `w2ln4-siaaa-aaaae-qajwq-cai`
- **Broadcaster Subnet 2** : `e4qhd-faaaa-aaaac-ah2ba-cai`
- **Whitelist Subnet 1 (Subscriber)**: `wujau-jyaaa-aaaae-qajxq-cai`
- **Whitelist Subnet 2 (Subscriber)**: `e3rbx-iyaaa-aaaac-ah2bq-cai`
- **Splitter (Subscriber)**: `arnqk-riaaa-aaaae-qakmq-cai`

You can interact with the demo at the [ICDevs.org’s ICRC-75 browser](https://iedms-tqaaa-aaaal-amieq-cai.icp0.io/).

The publisher, “Watcher,” emits a single message. It flows through the **Broadcasters** to both subnet subscribers. When your transaction is detected, you’re added to the alpha tester list, and a new ICRC75 list tracks each contribution. The canisters on each subnet should be eventually consistent.

The ledger is scanned every 30 seconds, and broadcasts also happen roughly every 30 seconds. Expect ~60 seconds of delay for your event to fully propagate.

Under the hood, we use [NTN DAO’s DeVeFi ledger software](https://github.com/Neutrinomic/devefi_icp_ledger) for the ledger scanning functionality.

* * *

## Example Subscriber Code (Motoko)

Below is a version of the Motoko code that subscribes to the ICP transaction stream. Once you configure it using the ICRC-72 standard subscription, ICaiBus handles the rest:

```motoko
let subscribeResult = await* icrc72_subscriber().subscribe([{
  namespace = "com.icp.org.trx_stream";
  config = [
    (ICRC72Subscriber.CONST.subscription.filter, #Text("$.to == e9dc3bbbcb45479709e8ef512f6c8a66d6593cbb1b8621ff9cdbde917d6da9aa")),
    (ICRC72Subscriber.CONST.subscription.controllers.list, #Array([
      #Blob(Principal.toBlob(thisPrincipal)),
      #Blob(Principal.toBlob(_owner))
    ])),
  ];
  memo = null;
  listener = #Async(func <system>(event: ICRC72Subscriber.EventNotification) : async* {
    // ... code that handles the event, checks the amount, 
    // and updates the membership and data tracking ...
  });
}]);

```

This snippet shows how straightforward it can be to start receiving events. Simply set the filter, designate controllers, and provide a listener function.

* * *

## Cycle Costs and Next Steps

- **Cycles** : We currently have a high multiplier on request costs to ensure we don’t run out of cycles mid-demo (around **99 million cycles** per notification, or ~$0.00013).
- Each notification needs to be confirmed (our subscriber component does this for you). If your cycle balance runs too low, you’ll stop receiving messages.

We expect these costs and methods to be refined as we exit alpha. If you want to test a feed or run your own publisher, please reach out.

* * *

## How You Can Help

1. **Build a service** that listens to the ICP data stream. We’ll be happy to whitelist your canister (future versions will be permissionless).
2. **Publish your own events** in the alpha. If you have a feed you’d like to share, let’s talk about onboarding you.
3. **Rust contributors needed** : The Event Utility Working Group is searching for a Rust engineer to create a publisher/subscriber component in Rust.

The Code:

- Our Test Suite(In case you’d like a broader view of what the software can do: [GitHub - PanIndustrial-Org/mvevent](https://github.com/PanIndustrial-Org/mvevent)
- The Subscriber Component: [icrc72-subscriber-mo](https://github.com/PanIndustrial-Org/icrc72-subscriber-mo)
- The alpha subscribers - whitelister and splitter - [icaibus\_whitelister](https://github.com/PanIndustrial-Org/icaibus_whitelister)

* * *

## Join the Event Utility Working Group

We’re reconvening on **January 29th** to discuss alpha implementation details and next steps. If you’re interested:

- Check out the working group’s forum thread: [https://forum.dfinity.org/t/technical-working-group-inter-canister-event-utility-working-group/29048](https://forum.dfinity.org/t/technical-working-group-inter-canister-event-utility-working-group/29048)
- Join our dedicated Discord channel on [the IC Community Discord](https://discord.gg/icp-996801223384645703)
- Explore our GitHub: [https://github.com/icdevs/ICEventsWG](https://github.com/icdevs/ICEventsWG)

We look forward to your feedback, questions, and contributions!

**—The Pan Industrial Team**  
_Supported by a DFINITY Developer Grant_

---

<div class="post-metadata">

**Author:** ![PanIndustrial](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/panindustrial/32/13740_2.png) [@PanIndustrial](https://forum.dfinity.org/u/PanIndustrial)\
**Post date:** [January 27, 2025, 8:57pm UTC](https://forum.dfinity.org/t/icaibus-internet-computer-ai-bus-pubsub-made-easy-on-the-ic/40606/2 "2025-01-27T20:57:51Z")

</div>

[![](https://us1.discourse-cdn.com/flex023/uploads/dfn/original/3X/f/4/f46fc15e5e1fd5e16d70e74861b2ecc2fb9de682.jpeg "ICaiBus") ](https://www.youtube.com/watch?v=gHAYifourG4)

---

<div class="post-metadata">

**Author:** ![Txo](https://avatars.discourse-cdn.com/v4/letter/t/53a042/32.png) [@Txo](https://forum.dfinity.org/u/Txo)\
**Post date:** [January 28, 2025, 1:11am UTC](https://forum.dfinity.org/t/icaibus-internet-computer-ai-bus-pubsub-made-easy-on-the-ic/40606/3 "2025-01-28T01:11:42Z")

</div>

I thought ic already built inter subnet communication in protocol level  
How is this different  
Does it bypass conssus to overcome latency

---

<div class="post-metadata">

**Author:** ![PanIndustrial](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/panindustrial/32/13740_2.png) [@PanIndustrial](https://forum.dfinity.org/u/PanIndustrial)\
**Post date:** [January 28, 2025, 1:20am UTC](https://forum.dfinity.org/t/icaibus-internet-computer-ai-bus-pubsub-made-easy-on-the-ic/40606/4 "2025-01-28T01:20:05Z")

</div>

This is built onto of the IC and uses that intersubnet communication, but presently, if you want your canister tell 16 canisters that you are ‘ready to receive messages’ you have to make 16 different calls to each individually. And you need to trust those canisters as any one of them could make your canister un-upgradeable if it is malicious and you don’t use one-shot calls.

With this framework you can emit a ‘ready’ event and the ICaiBus framework will make sure they get there. The subnet navigation is a strategy around reducing cycle costs. Each open call reserves and spends cycles while the call is open. If your sixteen canisters are on a remote subnet you will open 16 individual calls and pay for the max open reserved memory for a full possible 2MB response for each. With our framework those messages are collated and sent in batch messages to broadcasters on each subnet that can then do on-subnet calls that typically finish within the same round.

In summary: IC developers are not supposed to have to think about subnets, but in reality they do because crossing a subnet barrier increase latency and cost. Our framework abstracts that away and reduces the problem to just cost(we do account extra cycles if you are relayed to another subnet, but it is consistent and more ‘even’ than the unknown of the current system.

---

<div class="post-metadata">

**Author:** ![PanIndustrial](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/panindustrial/32/13740_2.png) [@PanIndustrial](https://forum.dfinity.org/u/PanIndustrial)\
**Post date:** [January 28, 2025, 2:39am UTC](https://forum.dfinity.org/t/icaibus-internet-computer-ai-bus-pubsub-made-easy-on-the-ic/40606/5 "2025-01-28T02:39:13Z")

</div>

It seems the original post didn’t mention an important feature: This system uses one shot calls so you can broadcast to canisters that you do not own safely without risk that they can block your upgrades. This solves one of the oldest issues with intercansister calls that we’ve been dealing with since genesis. [Watch out for foot guns with canister upgrades - #9 by nomeata](https://forum.dfinity.org/t/watch-out-for-foot-guns-with-canister-upgrades/8954/9)

Publish calls from your publisher to the broadcaster are regular calls but always return quickly. The ICaiBus broadcasters send one-shots to subscribers to make sure they can always be upgraded. You can now send messages to undoxed bots, degens, nere-do-wells, and rapscallions.

---

<div class="post-metadata">

**Author:** ![frederico02](https://avatars.discourse-cdn.com/v4/letter/f/7bcc69/32.png) [@frederico02](https://forum.dfinity.org/u/frederico02)\
**Post date:** [January 28, 2025, 5:14am UTC](https://forum.dfinity.org/t/icaibus-internet-computer-ai-bus-pubsub-made-easy-on-the-ic/40606/6 "2025-01-28T05:14:03Z")

</div>

Nice job! I’ve been working for one of the DAOs on ICP for about a year writing Rust canisters. I’d like to help if you’ll accept me.

Thanks

---

<div class="post-metadata">

**Author:** ![jennifertran](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/jennifertran/32/11558_2.png) [@jennifertran](https://forum.dfinity.org/u/jennifertran)\
**Post date:** [January 28, 2025, 6:33am UTC](https://forum.dfinity.org/t/icaibus-internet-computer-ai-bus-pubsub-made-easy-on-the-ic/40606/7 "2025-01-28T06:33:58Z")

</div>

What are the use cases for AI services? It sounds like ICaiBus would be great for handling events to various AI agents that need the same events.

I guess the use cases can be endless here; I am just curious why name it ICaiBus.

---

<div class="post-metadata">

**Author:** ![Lorimer](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/lorimer/32/17601_2.png) [@Lorimer](https://forum.dfinity.org/u/Lorimer)\
**Post date:** [January 28, 2025, 8:10am UTC](https://forum.dfinity.org/t/icaibus-internet-computer-ai-bus-pubsub-made-easy-on-the-ic/40606/8 "2025-01-28T08:10:05Z")

</div>

Thanks for this @PanIndustrial. A messaging bus for the IC will be a very beneficial piece of infrastructure, I’m sure. I’ll be keeping tabs on this. Very exciting! 🙂

---

<div class="post-metadata">

**Author:** ![icarus](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/icarus/32/9781_2.png) [@icarus](https://forum.dfinity.org/u/icarus)\
**Post date:** [January 28, 2025, 12:04pm UTC](https://forum.dfinity.org/t/icaibus-internet-computer-ai-bus-pubsub-made-easy-on-the-ic/40606/9 "2025-01-28T12:04:46Z")

</div>

It’s great to see a whole event management platform take shape on the IC to support more message passing modes beyond simply request-response calls.  
Having a payment for service option included in the message payload will surely find many good use cases in projects who implement with ICaiBus

Lovely work @PanIndustrial !

---

<div class="post-metadata">

**Author:** ![PanIndustrial](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/panindustrial/32/13740_2.png) [@PanIndustrial](https://forum.dfinity.org/u/PanIndustrial)\
**Post date:** [January 28, 2025, 12:26pm UTC](https://forum.dfinity.org/t/icaibus-internet-computer-ai-bus-pubsub-made-easy-on-the-ic/40606/10 "2025-01-28T12:26:13Z")

</div>

IC - Internet Computer  
AI - Artificial Intelligence  
BUS - [Bus (computing) - Wikipedia](https://en.wikipedia.org/wiki/Bus_(computing))

We’ve been looking at building an Enterprise Bus for the IC since the beginning as we knew it was necessary for enterprise grade development. AI seems to be here now and with our work with enterprise we can _see where this is going_. Enterprise will be mostly AI agents. When those agents begin to speak across enterprise boundaries they lose trust. Communicating over a trustless protocol with sufficient consensus can drastically increase can provide the trust necessary to allow those AIs to execute commerce, negotiations, data exchange, etc with trust.

So we went with AI and ICentBus went out the window 🙂

As you mention this is a great tool for:

1. AIs that want to publish their ‘decisions’ or ‘actions’ to to other canisters on the IC. If you want your dApp to have one-line integrate opportunities and one-line monetization opportunities by agents running on the IC then publishing ICaiBus events will be much easier than telling them to query an endpoint over and over (which get converted to an update call and costs cycles every time your canister wakes up) and much easier than deploying infrastructure to AWS to query from outside the IC and then building a trust layer back into your on-chain agent.

2. AIs that want to listen and respond to 3rd party events occurring on the IC. This becomes much easier because a) Publishers no longer need to trust that you’ll respond in a timely manner and b) Publishers don’t need to know who you are or write their own notification engine. It saves devs. time and operators cycles. In a @bobdotfun world where subnets can get clogged it is also nice to not have to pay for reserved compute and know that you canister will only be woken up when it has some work to do. With proper architecture devs can maintain a low cost footprint even on busy subnets.

And, yes, beyond that the use cases are endless and prior art says there might be something here. ICaiBus is the MuleSoft of the IC.:

_warning subject to hallucination and not verified_

Here’s a list of well-known Enterprise Service Bus (ESB) companies along with their software offerings, estimated license costs, and estimated annual revenue based on historical knowledge up to 2023:

### Current Enterprise Service Bus (ESB) Companies

| **Company** | **ESB Software Offering** | **Estimated Cost for a License** | **Estimated Annual Revenue** |
| --- | --- | --- | --- |
| MuleSoft | MuleSoft Anypoint Platform | $80,000–$250,000/year (varies by scale) | $1 billion (acquired by Salesforce) |
| IBM | IBM App Connect (formerly IIB) | $100,000–$250,000/year | $5 billion+ (IBM Middleware Division) |
| TIBCO | TIBCO ActiveMatrix BusinessWorks | $150,000–$300,000/year | $1.5 billion (estimated middleware revenue) |
| Oracle | Oracle Service Bus | $50,000–$200,000/year | $1 billion+ (Fusion Middleware) |
| Software AG | webMethods Integration Server | $100,000–$300,000/year | $1 billion+ |
| Microsoft | Azure Service Bus | $1,000–$10,000/month (cloud-based) | $200 billion+ (Microsoft overall) |
| Red Hat (IBM-owned) | Red Hat Fuse (formerly JBoss Fuse) | $10,000–$20,000/year (open-source model) | Part of $1 billion Red Hat division |

### Historical ESB Software and Acquisitions

| **Historical ESB Software** | **Acquirer** | **Acquisition Amount** |
| --- | --- | --- |
| MuleSoft | Salesforce | $6.5 billion (2018) |
| JBoss ESB | Red Hat | $350 million (2006) |
| BEA Systems (including AquaLogic Service Bus) | Oracle | $8.5 billion (2008) |
| Progress Sonic ESB | Progress Software | Estimated $100 million |
| Cape Clear ESB | Workday | Undisclosed |
| SeeBeyond (eGate Integrator) | Sun Microsystems (later Oracle) | $387 million (2005) |
| TIBCO | Vista Equity Partners | $4.3 billion (2014, private buyout) |

_These costs and revenues are approximate based on prior knowledge of ESB industry trends and acquisitions and may be completely made up by an AI._

---

<div class="post-metadata">

**Author:** ![PanIndustrial](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/panindustrial/32/13740_2.png) [@PanIndustrial](https://forum.dfinity.org/u/PanIndustrial)\
**Post date:** [January 28, 2025, 12:28pm UTC](https://forum.dfinity.org/t/icaibus-internet-computer-ai-bus-pubsub-made-easy-on-the-ic/40606/11 "2025-01-28T12:28:17Z")

</div>

Yes! We have discussed this as an ICRC add on to the ICRC-72 protocol in the Event Utility Working Group. You can find the issue here and we’d love your contribution: [Financial Value · Issue #45 · icdevs/ICEventsWG · GitHub](https://github.com/icdevs/ICEventsWG/issues/45)

---

<div class="post-metadata">

**Author:** ![PanIndustrial](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/panindustrial/32/13740_2.png) [@PanIndustrial](https://forum.dfinity.org/u/PanIndustrial)\
**Post date:** [January 28, 2025, 12:30pm UTC](https://forum.dfinity.org/t/icaibus-internet-computer-ai-bus-pubsub-made-easy-on-the-ic/40606/12 "2025-01-28T12:30:14Z")

</div>

Please join the working group call this Wednesday if you can and we can have the WG authorize the issuance of our WG Token for the work. Feel free to reach out privately with your GitHub and I can add you to the repos so you can see what the current publish/subscribe modules look like.

---

<div class="post-metadata">

**Author:** ![jennifertran](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/jennifertran/32/11558_2.png) [@jennifertran](https://forum.dfinity.org/u/jennifertran)\
**Post date:** [January 29, 2025, 12:56am UTC](https://forum.dfinity.org/t/icaibus-internet-computer-ai-bus-pubsub-made-easy-on-the-ic/40606/13 "2025-01-29T00:56:45Z")

</div>

Thank you for the thorough explanation; it would be cool if you could explore the use cases mentioned.

A few areas that come to mind:

1. A collaboration with @zensh that would allow agents built on Anda to send data to a subscriber canister.

2. ICaiBus could serve as an AI agent “log.” The AI agent does an action and posts it into a stream.

3. Showcasing an AI agent reacting to the ICP transaction stream.

Please let us know if you pursue any of these or need to find developers to pursue them.

---

<div class="post-metadata">

**Author:** ![PanIndustrial](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/panindustrial/32/13740_2.png) [@PanIndustrial](https://forum.dfinity.org/u/PanIndustrial)\
**Post date:** [January 29, 2025, 12:42pm UTC](https://forum.dfinity.org/t/icaibus-internet-computer-ai-bus-pubsub-made-easy-on-the-ic/40606/14 "2025-01-29T12:42:09Z")

</div>

1. Would be great to put together. @zensh I’m guessing the models are running in cpp or rust? Is there a wrapper around them. We will hopefully have a rust publisher/subscriber soon and then it is just a matter of wiring the two up. What is the best place to get started deploying a model canister and what does the interface to it look like(candid?).

2. Yes. And this extends even to external models that want to transact in some way. By giving them an identity and having them communicate with some kind of on-chain wallet that can emit these events you’d be able to start to tie identities to these off-chain agents.

3. As soon as we can figure out how to get an agent up and running and have capture it’s output we can set this up as a simple demo.

---

<div class="post-metadata">

**Author:** ![integral\_wizard](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/integral_wizard/32/36808_2.png) [@integral\_wizard](https://forum.dfinity.org/u/integral_wizard)\
**Post date:** [February 5, 2025, 5:27pm UTC](https://forum.dfinity.org/t/icaibus-internet-computer-ai-bus-pubsub-made-easy-on-the-ic/40606/15 "2025-02-05T17:27:20Z")

</div>

Great tech. I’d imagine smth like Telegram channel broadcast could be built on top of this. A way for personal and organizational broadcasting systems, with full ownership of the network.

---

<div class="post-metadata">

**Author:** ![Sormarler](https://avatars.discourse-cdn.com/v4/letter/s/c57346/32.png) [@Sormarler](https://forum.dfinity.org/u/Sormarler)\
**Post date:** [February 7, 2025, 6:37am UTC](https://forum.dfinity.org/t/icaibus-internet-computer-ai-bus-pubsub-made-easy-on-the-ic/40606/16 "2025-02-07T06:37:02Z")

</div>

This ICAIbus sounds very interesting and could be pretty useful and solve a lot of problems for developers in the community. I hope that DFINITY supports it fully and gets this thing out there to make building on the Internet Computer easier so that we can have even better applications for users.

---

<div class="post-metadata">

**Author:** ![marc0olo](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/marc0olo/32/17290_2.png) [@marc0olo](https://forum.dfinity.org/u/marc0olo)\
**Post date:** [February 20, 2025, 5:24pm UTC](https://forum.dfinity.org/t/icaibus-internet-computer-ai-bus-pubsub-made-easy-on-the-ic/40606/17 "2025-02-20T17:24:58Z")

</div>

> [@PanIndustrial](#):
>
> **Watcher (Publisher)**: `w5kli-7qaaa-aaaae-qajwa-cai`

is the watcher using a heartbeat right now to recognize all ICP transfers?

> [@PanIndustrial](#):
>
> The ledger is scanned every 30 seconds, and broadcasts also happen roughly every 30 seconds. Expect ~60 seconds of delay for your event to fully propagate.

when reading this, I assume the watcher is using a timer at the moment. how do you ensure that you do not miss any tx on the ledger? is the code publicly accessible?

---

<div class="post-metadata">

**Author:** ![PanIndustrial](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/panindustrial/32/13740_2.png) [@PanIndustrial](https://forum.dfinity.org/u/PanIndustrial)\
**Post date:** [February 20, 2025, 9:11pm UTC](https://forum.dfinity.org/t/icaibus-internet-computer-ai-bus-pubsub-made-easy-on-the-ic/40606/18 "2025-02-20T21:11:52Z")

</div>

Currently we use a timer to check every 30 seconds. We use a slightly modified version of devefi-icp-ledger [Mops • Motoko Package Manager](https://mops.one/devefi-icp-ledger) to ensure we get them all. The only change is adjusting from 3 seconds to 30.

As an interesting aside, this watcher has burned about $22 in cycles over the last month or so.

The entire canister isn’t publicly available at the moment, but the entire watcher canister is only 417 lines of code with 95% of that being boilerplate. We just wire up NTN’s component to our publisher component.

I’m guessing there is likely a point of no return where with enough through put and volume we’d not be able to keep up with throughput. I’m looking forward to having that problem.

---

<div class="post-metadata">

**Author:** ![PanIndustrial](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/panindustrial/32/13740_2.png) [@PanIndustrial](https://forum.dfinity.org/u/PanIndustrial)\
**Post date:** [March 10, 2025, 8:53pm UTC](https://forum.dfinity.org/t/icaibus-internet-computer-ai-bus-pubsub-made-easy-on-the-ic/40606/19 "2025-03-10T20:53:15Z")

</div>

We have a memory leak!

I’m going to stop the watcher until we can address it, If you are depending on this service currently let us know and we’ll expedite.

---

<div class="post-metadata">

**Author:** ![PanIndustrial](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/panindustrial/32/13740_2.png) [@PanIndustrial](https://forum.dfinity.org/u/PanIndustrial)\
**Post date:** [April 19, 2025, 1:19am UTC](https://forum.dfinity.org/t/icaibus-internet-computer-ai-bus-pubsub-made-easy-on-the-ic/40606/20 "2025-04-19T01:19:02Z")

</div>

We are taking the alpha down for now. We’ve learned a good bit about where we need to shore up the back offs to prevent cycle burn. We hope to begin productization soon. If you need this functionality in the short term, reach out and we can figure a way to get things back up and running.

Watching ICP was a bit expensive in the realm of cycles. Not outlandish, and certainly cheaper than every canister querying the index or archive canister but non-trivial at this point.

More soon.

[Next page](https://forum.dfinity.org/t/icaibus-internet-computer-ai-bus-pubsub-made-easy-on-the-ic/40606.md?page=2)
