Integration Patterns · API Governance Rules

Integration Patterns API Rules

Spectral linting rules defining API design standards and conventions for Integration Patterns.

0 Rules
View Rules File View on GitHub

Spectral Ruleset

integration-patterns-rules.yml Raw ↑
x-aid: integration-patterns:rules
x-name: Integration Patterns Usage Rules
description: >-
  Operational rules and guardrails for applying Enterprise Integration
  Patterns (EIP) to real systems. These rules cover when to use messaging
  versus request/response, channel and endpoint design, routing and
  transformation, error handling, and the operational concerns of system
  management patterns in modern microservice and event-driven environments.
x-modified: '2026-04-28'
rules:
  - id: name-the-pattern
    category: Vocabulary
    statement: >-
      Use canonical EIP names (e.g., Content-Based Router, Message Filter,
      Aggregator, Wire Tap) in design documents and code reviews so that
      teams share a precise, technology-independent vocabulary.
  - id: messaging-vs-rpc
    category: Style
    statement: >-
      Reach for asynchronous messaging when components must be loosely
      coupled, survive partial failure, or scale independently; reach for
      synchronous request/response when a caller genuinely needs an
      immediate answer.
  - id: channel-per-purpose
    category: Messaging Channels
    statement: >-
      Define one channel per message type or business intent rather than a
      single firehose channel; this makes Datatype Channel and
      Publish-Subscribe semantics explicit.
  - id: durable-channels
    category: Messaging Channels
    statement: >-
      Use Guaranteed Delivery (durable, persistent) channels for any
      message whose loss would damage the business; reserve volatile
      channels for telemetry-class data.
  - id: command-vs-event
    category: Message Construction
    statement: >-
      Distinguish Command Messages (do this) from Event Messages
      (this happened) in both naming and routing; never overload a single
      message type to mean both.
  - id: correlation-ids
    category: Message Construction
    statement: >-
      Stamp every message with a correlation ID so that Request-Reply,
      Aggregator, and Saga-style flows can be traced end to end.
  - id: idempotent-consumers
    category: Endpoints
    statement: >-
      Make every message endpoint idempotent so that duplicate delivery
      (which is normal in at-least-once messaging) does not corrupt state.
  - id: poison-message-handling
    category: Reliability
    statement: >-
      Route un-processable messages to a Dead Letter Channel after a
      bounded number of redelivery attempts rather than letting them block
      a queue or loop forever.
  - id: content-based-routing
    category: Routing
    statement: >-
      Use a Content-Based Router or Message Filter when only a subset of
      consumers should see a message; do not push routing logic into every
      consumer.
  - id: transformer-isolation
    category: Transformation
    statement: >-
      Implement Message Translator and Content Enricher as dedicated
      components so that schema differences between systems are visible
      and testable, not buried inside business logic.
  - id: orchestration-vs-choreography
    category: Process
    statement: >-
      Use Process Manager / orchestration when a single business process
      needs central control, audit, and timeouts; use choreography
      (event-driven, no central coordinator) when independence and
      autonomy of services matter more than central oversight.
  - id: wire-tap-for-observability
    category: System Management
    statement: >-
      Use Wire Tap and Message History patterns to add observability to
      live channels without altering production message flow.
  - id: control-bus
    category: System Management
    statement: >-
      Manage configuration, feature flags, and operational commands for
      messaging components through a Control Bus, not by ad hoc redeploys
      or direct database writes.
  - id: schema-evolution
    category: Governance
    statement: >-
      Version message schemas explicitly and make changes additive when
      possible; coordinate breaking changes via Message Translator and a
      planned consumer migration rather than in-place schema mutation.
  - id: pattern-not-product
    category: Strategy
    statement: >-
      Choose a pattern first and a product (broker, iPaaS, agent
      framework) second; do not let a vendor's primitives dictate which
      EIP patterns are available to your architecture.

Work with this as data

Every ruleset here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for spectral rules

4 MCP tools reach this
  • find_rulesBrowse and filter every ruleset in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This ruleset
curl "https://apis.io/api/v1/rules/integration-patterns-rules"
All spectral rules
curl "https://apis.io/api/v1/rules?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.