Skip to content

Detailed Paradigm Comparisons #291

Description

@mcclowes
  1. vs. Embedded Host-Language Stacks (e.g., TypeScript + Zod + Fetch)
    Where Reqon wins: Replaces 20–30 lines of imperative boilerplate with concise declarative syntax. It prevents "validation drift," where the fetching logic, mapping functions, and Zod schemas live in different files and fall out of sync.

Where Host Stacks win: Native TypeScript libraries offer direct type inference, IDE auto-completion without custom language servers, and seamless integration with complex application logic without context switching.

  1. vs. Dedicated Transformation DSLs (e.g., JQ, JSONata)
    Where Reqon wins: JQ and JSONata are purely functional data-querying languages; they do not natively handle fetching remote data, handling network errors, or enforcing strict schema validation contracts out of the box. Reqon treats fetching and validation as core primitives alongside mapping.

Where JQ/JSONata win: For complex querying, path filtering, and deep structural JSON manipulation, JQ and JSONata possess far more expressive query engines.

  1. vs. API Specifications & Query Languages (e.g., OpenAPI, GraphQL)
    Where Reqon wins: OpenAPI describes what an API looks like, but cannot execute transformations or validate client-side domain constraints on ingested data. GraphQL allows client-side field selection, but requires the server to implement a GraphQL engine. Reqon operates client-side to fetch, transform, and sanitize data from any arbitrary REST or HTTP endpoint.

Where OpenAPI/GraphQL win: OpenAPI and GraphQL provide standardized cross-organization contracts, server-side code generation, and vast ecosystem integration.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions