Skip to content

One provider can have many execution transports

October 4, 2026 · Kishore Babu Gutta

A useful architecture shift happened while building the GitHub provider.

GitHub is not "a REST integration."

It is not "a GraphQL integration."

It is not "a gh CLI integration."

GitHub is the provider.

REST, GraphQL and gh are different transports that can reach it.

Provider first, transport second

Intent
  ↓
GitHub provider
  ├─ REST
  ├─ GraphQL
  └─ CLI

Different operations may naturally fit different transports.

The caller should not need to redesign its intent around that fact.

That leads to a useful principle:

Transport is an execution decision, not the user's product model.

The same idea generalises to cloud and infrastructure providers.

A provider may expose APIs, CLIs, SDKs, files, protocols or MCP servers over time.

Engineering Runtime can preserve a stable intent layer while adding those execution paths underneath it.

Why abstraction still needs transparency

Hiding transports completely would also be a mistake.

Transport affects:

  • authentication shape,
  • failure modes,
  • rate limits,
  • output structure,
  • provider capability coverage,
  • observability.

So the Runtime can choose or compile an operation while still reporting which transport performed it.

That gives users abstraction without losing evidence.

The resulting model

Intent
  ↓
Provider operation
  ↓
Runtime controls
  ↓
Selected transport
  ↓
Provider system

This is the basis of Engineering Runtime's Provider Multi-Transport Model.