Integration Event Bus
What would happen if each internal topic fired right now. The Hub resolves these plans against the live estate and does not execute them — executing is the Task Orchestrator's job, and the plans are already shaped for it.
A topic is owned by the module that raises it — the Workflow Engine decides what “completed” means and the Hub must not acquire an opinion about it. Fan-out order comes from connector category rather than being stored per topic, so adding a connector inserts it at the right position in every chain it subscribes to without any sequence being edited.
Integration Event Bus80
14 live · 66 unroutedEach topic is owned by the module that raises it; the Hub only routes. Order comes from connector category — commerce settles before anyone is notified, analytics records last — so a new connector takes its position automatically. The bus resolves these plans and does not execute them; that is the Task Orchestrator's job.
A workflow reached its final stage with every gate cleared.
- workflows
- Integration Hub
- Shopify
- Stripe
- GitHub
- Slack
- Google Workspace
- REST API
- Stripe skipped — Awaiting authentication.
- REST API skipped — Awaiting authentication.
Module Bindings14
95 unmetA module never names a connector — it declares a capability, and the gateway resolves it from whatever is installed and healthy. That indirection is why installing a second messaging connector gives the Communication Hub a fallback without the Hub being modified.
- Mission ControlNo external reach
The launcher reads other modules and reaches nothing external. Listed to state that explicitly.
- Company Management5 unmet
A company workspace acquires a storefront, a billing entity and a revenue read through the Hub, never a Stripe client.
Needscatalogue.writecollection.writeproduct.readpayment.readsubscription.readpayer.readpayer.writeinvoice.readServed byShopify - Executive Team6 unmet
Approval requests and executive cadence reach humans through whichever messaging connector is healthy. The four payments reads are the operator's own position — recurring revenue, receivables, treasury and exposure — and every one of them is a read: nothing here moves money.
Needsmessage.sendevent.writesubscription.readinvoice.readbalance.readpayout.readdispute.readServed bySlack - Department Management1 unmet
Departments raise external work items and read their state back onto boards. Engineering gets issues; support gets customers and their order history; sales gets quotes; anything else gets the generic transport.
- Agent Fleet34 unmet
Every AI employee's reasoning resolves through an AI provider connector; the engineering archetypes additionally read and write source control and CI, the document archetypes reach Drive, Docs, Sheets, Gmail and Calendar, the commerce archetypes reach the catalogue, orders, inventory and storefront content, and the payments archetypes reach billing, subscriptions, invoices and treasury. This list is the union of what those archetypes ask for — the per-archetype breakdown is the connector's to declare, in `ProviderSurface.consumers`, and `bindingGaps()` reports anything promised there that is missing here. Eleven payments capabilities are absent on purpose, including every one that raises a charge or moves the balance. This is the binding the AI Runtime will inherit.
Needscompletion.createrepo.readpr.readpr.writepr.reviewbranch.readbranch.writeissue.readissue.writecommit.readcode.searchlabel.readmilestone.readpipeline.readpipeline.run.readpipeline.triggerrelease.readrelease.writediscussion.readproject.readcontributor.readfile.readfile.writefile.searchfolder.readfolder.writestorage.syncpermission.readpermission.writerevision.readdoc.writesheet.readsheet.writesheet.appendslide.writecomment.readcomment.writemail.readmail.sendmail.draftcalendar.readcalendar.writedirectory.readcontact.readcontact.writemeet.writecatalogue.writeproduct.readproduct.writeproduct.archivecollection.readcollection.writeorder.readorder.writeorder.cancelcustomer.readcustomer.writecustomer.taginventory.readinventory.adjustinventory.synclocation.readdiscount.readdiscount.writegiftcard.readgiftcard.writedraftorder.readdraftorder.writefulfilment.readfulfilment.writeshipping.readmarket.readmetafield.readmetafield.writeasset.readasset.writepage.readpage.writeblog.readblog.writetheme.readapp.readanalytics.readpayer.readpayer.writepaymentmethod.readpayment.readrefund.readrefund.writepaymentlink.writecheckout.readcheckout.writeinvoice.readinvoice.writeinvoice.finaliseinvoice.sendinvoice.payinvoice.voidsubscription.readsubscription.writesubscription.cancelsubscription.pausesubscriptionitem.readsubscriptionitem.writebillingproduct.readprice.readprice.writecoupon.writepromotioncode.writedispute.readpayout.readbalance.readbalancetransaction.readconnectedaccount.readusagerecord.readusagerecord.writetax.read - Memory SystemServed
The embedding coverage figure the module reports as 0 becomes real the moment an AI connector serves `embedding.create`.
Needsembedding.createfile.readfile.writestorage.syncdoc.readfile.search - Communication HubServed
The heaviest consumer. Three connectors serve `message.send`, so the Hub degrades rather than breaks when one fails. Mail is a separate ask with its own capabilities, so a chat outage cannot silently reroute correspondence.
Needsmessage.sendmessage.receivechannel.managepresence.readmail.readmail.sendmail.draftcomment.read - Workflow Engine16 unmet
The largest fan-out surface — `workflow.completed` is the topic the canonical chain in the brief describes, and commerce is its first hop. The write capabilities are what a step requests when it performs external work; the named actions an operator picks from are the connector's to declare. Four of the payments capabilities here move money, which is the set an approval gate should stand in front of.
Needsissue.writepr.writebranch.writerelease.writepipeline.triggermessage.sendfile.writeinvoice.writeevent.writehttp.requestdoc.writeslide.writesheet.appendsheet.writestorage.syncfolder.writepermission.writemail.sendmail.draftcalendar.writemeet.writecontact.writecatalogue.writeproduct.writeproduct.archivecollection.writeinventory.adjustdiscount.writecustomer.writecustomer.tagdraftorder.writefulfilment.writeorder.cancelpage.writepayer.writepaymentmethod.attachpayment.createrefund.writepaymentlink.writecheckout.writeinvoice.finaliseinvoice.sendinvoice.paysubscription.writesubscription.cancelsubscription.pauseprice.write - Knowledge Graph11 unmet
External entities are projected into the graph exactly as internal ones are — the graph owns none of them either. Each read here backs a node kind some connector declares in `ProviderSurface.entities`. FOUR connectors' worth of person-shaped roots now exist — a GitHub developer, a Workspace directory person, a Workspace contact, a Shopify shopper and a Stripe billing entity. The last two are frequently the same human and are deliberately projected as two nodes: reconciling them into one identity is the graph's decision, not any connector's, and a connector that merged them would be asserting an identity it cannot verify.
Needscode.searchrepo.readissue.readpr.readcommit.readcontributor.readproject.readdiscussion.readhttp.pollfolder.readdoc.readsheet.readslide.readdirectory.readcalendar.readfile.searchfile.readmail.readcontact.readpermission.readmeet.readproduct.readcollection.readorder.readcustomer.readinventory.readlocation.readdiscount.readpayer.readbillingproduct.readprice.readpayment.readrefund.readinvoice.readsubscription.readdispute.readpayout.readconnectedaccount.read - Decision Engine11 unmet
The AI advisor seam this module already documents resolves to `completion.create` through the Hub. The reads are what an instantaneous insight needs — engineering from source control, compliance and staleness from the document estate, and revenue, receivables and treasury from payments; anything trend-shaped waits on stored history, which nine of the thirteen payments insights say plainly that they need.
Needscompletion.createmessage.sendrepo.readissue.readpr.readpipeline.run.readpermission.readrevision.readcomment.readdirectory.readcalendar.readfile.readmail.readproduct.readorder.readcustomer.readinventory.readlocation.readdiscount.readdraftorder.readmarket.readanalytics.readpayer.readpayment.readrefund.readinvoice.readsubscription.readsubscriptionitem.readprice.readdispute.readpayout.readbalance.readbalancetransaction.read - Enterprise Intelligence8 unmet
Scheduled report delivery, which the module lists as a future integration, is a `file.write`, a `doc.write` or a `slide.write` away depending on the form the reader wants it in. The reads are the provenance behind the engineering, document, storefront and payments metrics a connector declares in `ProviderSurface.metrics`. Four of the payments figures are in currency and only one of them is revenue — the others are float, receivable and transfer, and summing them would count the same money three times.
Needsfile.writesheet.appendorder.readpayment.readrepo.readissue.readpr.readcommit.readrelease.readpipeline.run.readdoc.writeslide.writefile.readdoc.readfolder.readsheet.readpermission.readcomment.readmail.readcalendar.readproduct.readcustomer.readinventory.readanalytics.readpayer.readrefund.readinvoice.readsubscription.readdispute.readpayout.readbalance.read - Integration Hub1 unmet
The Hub itself consumes the inbound and outbound doors. It is a client of its own gateway, with no privileged path.
Needswebhook.receivewebhook.verifyhttp.requestServed byWebhook - AI RuntimeServed
Built in Phase 5, and the prediction this row made held: the three needs were already served, so the Runtime arrived without a line of change to this Hub. The needs are unchanged from when they were declared, and `lib/runtime/registry.runtimeCapabilities()` now READS them — this row is the Runtime's allow-list rather than a description of one, so a capability absent here is a capability it may not request.
Needscompletion.createembedding.createmodel.listServed byClaude - Task OrchestratorNot built yet2 unmet
Does not exist yet. It will execute the `EventRoute` plans this Hub resolves but does not run.
Needshttp.requestmessage.sendevent.writeServed bySlack