StepZen is now part of IBM. For the most recent product information and updates go to
https://www.ibm.com/products/stepzen

Comparisons

See how StepZen stacks up against other GraphQL providers.

Unparallelled flexibility for fetching data wherever it resides

StepZen

Connect data from any backend data source: SQL, NoSQL, REST, SOAP/XML, GraphQL, ....

StepZen can introspect the backend (REST, SOAP/XML, database, or GraphQL), or you can write your SDL and attach @rest, @dbquery or @graphql directives to it. Either way, you get a compact intuitive code that represents the GraphQL-ization of a backend or domain.

Apollo

Ever-changing backend support, with incompatibility between versions.

Hasura

Good for PostgreSQL, and a few other databases. Everything else is a “remote” schema, and is treated differently.

StepZenApolloHasura

Connect data from any backend data source: SQL, NoSQL, REST, SOAP/XML, GraphQL, ....

StepZen can introspect the backend (REST, SOAP/XML, database, or GraphQL), or you can write your SDL and attach @rest, @dbquery or @graphql directives to it. Either way, you get a compact intuitive code that represents the GraphQL-ization of a backend or domain.

Ever-changing backend support, with incompatibility between versions.

Good for PostgreSQL, and a few other databases. Everything else is a “remote” schema, and is treated differently.

Komax chose StepZen because while they have data in PostgreSQL, they also have data in Salesforce and HyGraph.

Read Komax's story

Low code, consistent approach abstracts backend complexity

StepZen

StepZen's declarative approach to GraphQL results in smaller and more intuitive code, better runtime performance, and faster time to value.

In StepZen, a GraphQL API is composed using declarative building blocks (each building block encapsulates a backend). Building blocks are stitched together by passing data from one into a query in the other (independent of how the building block is constructed).

Apollo

There are many “special” paths in Apollo – resolvers at query level, resolvers at field level, directives galore for federation, and new resolvers for federation. All of this imposes burdens on developers and increases maintenance costs.

Hasura

The Hasura console provides UI tools that help with your data-modeling process. The console also automatically generates migrations or metadata files that you can edit directly and check into your version control.

StepZenApolloHasura

StepZen's declarative approach to GraphQL results in smaller and more intuitive code, better runtime performance, and faster time to value.

In StepZen, a GraphQL API is composed using declarative building blocks (each building block encapsulates a backend). Building blocks are stitched together by passing data from one into a query in the other (independent of how the building block is constructed).

There are many “special” paths in Apollo – resolvers at query level, resolvers at field level, directives galore for federation, and new resolvers for federation. All of this imposes burdens on developers and increases maintenance costs.

The Hasura console provides UI tools that help with your data-modeling process. The console also automatically generates migrations or metadata files that you can edit directly and check into your version control.

HPE chose StepZen because the highly programmatic, roll-your-own, approach using Apollo would not work for them.

Read HPE's story

Automatic performance optimizations

StepZen

Because the code is written declaratively, StepZen’s runtime engine can parse the backend calls and create an optimal execution plan that includes caching, memoization, parallelizations, and combining multiple calls into one (N+1 problem).

Furthemore, the runtime is a carefully-designed thread-safe implementation in Golang, resulting in only a few milliseconds overhead.

Apollo

The resolver code is a black box to the Apollo execution engine, and all it can do is to call the right resolver at the right time.

Caching, memoization, optimizations etc. need to be handled by the developer, including, if needed, parsing of the GraphQL AST and understanding resolver calls that can be combined.

Hasura

Hasura executes GraphQL as a PostgreSQL query. PostgreSQL was designed to process flat tables, and its JSON processing is designed to fetch through JSON fields in flat tables.

While it can be used to process GraphQL, it is far from optimal. GraphQL is inherently hierarchical, and different execution paths in it can be executed in parallel–none of that is easy or even possible in a database query that is equivalent to GraphQL.

StepZenApolloHasura

Because the code is written declaratively, StepZen’s runtime engine can parse the backend calls and create an optimal execution plan that includes caching, memoization, parallelizations, and combining multiple calls into one (N+1 problem).

Furthemore, the runtime is a carefully-designed thread-safe implementation in Golang, resulting in only a few milliseconds overhead.

The resolver code is a black box to the Apollo execution engine, and all it can do is to call the right resolver at the right time.

Caching, memoization, optimizations etc. need to be handled by the developer, including, if needed, parsing of the GraphQL AST and understanding resolver calls that can be combined.

Hasura executes GraphQL as a PostgreSQL query. PostgreSQL was designed to process flat tables, and its JSON processing is designed to fetch through JSON fields in flat tables.

While it can be used to process GraphQL, it is far from optimal. GraphQL is inherently hierarchical, and different execution paths in it can be executed in parallel–none of that is easy or even possible in a database query that is equivalent to GraphQL.

Work&Co chose StepZen in part because parallelism in StepZen provided a 10X performance improvement over alternative choices.

Read Work&Co's story

GraphQL federation

StepZen

In StepZen, federation across two subgraphs is done in the same way as federation across two backends. In the federation scenario, the backends are @graphql, as opposed to @dbquery or @rest when building subgraphs.

This allows for composition of building blocks, and flexible evolution. Furthermore, all optimizations available within a GraphQL API are available across GraphQL APIs.

Apollo

In Apollo, how you build your GraphQL APIs (programmatically) is different than how you federate over GraphQL APIs (declaratively).

Furthermore, the federation model, by using Object Stitching, forces knowledge of federation down to subgraphs, and over a dozen new directives that need to be coded.

Hasura

Hasura supports federation as a remote schema, but optimizations across the federated schema are all but impossible.

StepZenApolloHasura

In StepZen, federation across two subgraphs is done in the same way as federation across two backends. In the federation scenario, the backends are @graphql, as opposed to @dbquery or @rest when building subgraphs.

This allows for composition of building blocks, and flexible evolution. Furthermore, all optimizations available within a GraphQL API are available across GraphQL APIs.

In Apollo, how you build your GraphQL APIs (programmatically) is different than how you federate over GraphQL APIs (declaratively).

Furthermore, the federation model, by using Object Stitching, forces knowledge of federation down to subgraphs, and over a dozen new directives that need to be coded.

Hasura supports federation as a remote schema, but optimizations across the federated schema are all but impossible.

Persistent chose StepZen because their number of data domains is increasing over time, and they needed a consistent and scalable approach of building GraphQL for each domain, and federating over them.

Read Persistent's story

Security for API and backends

StepZen

StepZen protects your API and your data. Queries, mutations, and subscriptions have simple enforcement mechanisms for authorization and authentication.

  • All inbound and outbound traffic is protected by TLS 1.2+
  • Access to queries/mutations is protected by API Keys and JWT – Database calls are prepared, preventing injection attacks
  • When accessing backends, StepZen supports whatever protection mechanism the backend uses – key-based, basic Auth, OAuth or JWT. JWT context is passed down to the respective backends.

Apollo

Protection has to be done, by the developer, on every path that an endpoint might be hit. For example, the resolver for a query has to be protected, but that same endpoint might be accessible as a field, therefore a separate protection must be implemented and kept in sync.

The protection code and execution code is all interleaved, making it very difficult to maintain and reason about.

Hasura

Hasura has good access control and authentication mechanisms, but against the databases it supports. For anything outside it, you have to write custom code, including even Apollo code if needed.

StepZenApolloHasura

StepZen protects your API and your data. Queries, mutations, and subscriptions have simple enforcement mechanisms for authorization and authentication.

  • All inbound and outbound traffic is protected by TLS 1.2+
  • Access to queries/mutations is protected by API Keys and JWT – Database calls are prepared, preventing injection attacks
  • When accessing backends, StepZen supports whatever protection mechanism the backend uses – key-based, basic Auth, OAuth or JWT. JWT context is passed down to the respective backends.

Protection has to be done, by the developer, on every path that an endpoint might be hit. For example, the resolver for a query has to be protected, but that same endpoint might be accessible as a field, therefore a separate protection must be implemented and kept in sync.

The protection code and execution code is all interleaved, making it very difficult to maintain and reason about.

Hasura has good access control and authentication mechanisms, but against the databases it supports. For anything outside it, you have to write custom code, including even Apollo code if needed.

Recorem chose StepZen because they could remove (and avoid the maintenance) of a service that was used to protect access to their backends.

Read Recorem's story

GraphQL-as-a-Service

StepZen

StepZen is available as a service in various clouds, and each API endpoint can be deployed in multiple regions. The endpoint is live in seconds with the stepzen start command – there are no VMs to spin up, and no router to manage – we take care of everything.

Apollo

Apollo does not offer a cloud delivered service, so you will have to manage it on your own.

Hasura

Benchmark for yourself how long it takes to deploy something to Hasura Cloud, and how complicated it is to scale across VMs and regions.

StepZenApolloHasura

StepZen is available as a service in various clouds, and each API endpoint can be deployed in multiple regions. The endpoint is live in seconds with the stepzen start command – there are no VMs to spin up, and no router to manage – we take care of everything.

Apollo does not offer a cloud delivered service, so you will have to manage it on your own.

Benchmark for yourself how long it takes to deploy something to Hasura Cloud, and how complicated it is to scale across VMs and regions.

Sight Consulting chose StepZen because its clients can adopt and adapt GraphQL implementations and not have to run, manage or maintain infrastructure.

Reliability you can bank on

StepZen

StepZen is built to deliver high availability and web scale without breaking the bank.

It is supported by a team that understands how to deploy, run, and manage a cloud service to an exacting 99.99% availability standard. Download StepZen's Performance tool and measure the performance of your GraphQL workloads.

Apollo

Apollo does not offer a cloud delivered service, you will need to manage it yourself.

StepZen's Performance tool

Hasura

Benchmark StepZen’s availability and scalability and judge for yourself.

StepZen's Performance tool

StepZenApolloHasura

StepZen is built to deliver high availability and web scale without breaking the bank.

It is supported by a team that understands how to deploy, run, and manage a cloud service to an exacting 99.99% availability standard. Download StepZen's Performance tool and measure the performance of your GraphQL workloads.

Apollo does not offer a cloud delivered service, you will need to manage it yourself.

StepZen's Performance tool

Benchmark StepZen’s availability and scalability and judge for yourself.

StepZen's Performance tool

A large community of developers use StepZen because they can rely on StepZen to be there for them at all times.

Visit StepZen's Discord Community