page:recipes:graphql api:hono:response streaming

Host GraphQL API with Hono: Streamed Responses

Deploy a GraphQL API built with Hono on Ample using the streaming response service pattern. Compute runs the app in an isolated microVM behind a public HTTPS URL, a managed PostgreSQL 16 database is auto-provisioned and injected as DATABASE_URL. Verified on Hono: a Server-Sent Events endpoint read incrementally through the public HTTPS gateway: five one-second chunks arrived spread over time with the first within seconds (not buffered), a 70-second stream of 36 chunks completed past common 60-second idle timeouts, and a client that disconnected after two chunks was observed and recorded by the server (disconnected=true). Not separately tested: your event schema, reconnection strategy and any per-request duration ceiling beyond the 70 seconds measured; treat the GraphQL API-specific behavior as your application code.

Representative Queries

Resource Requirements

Infrastructure Requirements

Framework

Hono

Workload

GraphQL API

Release Status

published

Support Status

verified

Execution Status

ready

Prerequisites

Workflow Steps

  1. Build and start: npm install and npm run start with @hono/node-server on the node-22 template. The server must bind 0.0.0.0 on PORT.
  2. Implement the pattern on PostgreSQL: The fixture's module implements streaming response service: a Server-Sent Events endpoint read incrementally through the public HTTPS gateway: five one-second chunks arrived spread over time with the first within seconds (not buffered), a 70-second stream of 36 chunks completed past common 60-second idle timeouts, and a client that disconnected after two chunks was observed and recorded by the server (disconnected=true). Copy the approach into your schema; keep migrations idempotent and run them with --release-command.
  3. Deploy: Run the synchronous deploy once and read the result (exit 0 live, 1 failed, 2 blocked). Re-running with no change is a no-op. Command: ample deploy . --name --public
  4. Verify: Fetch the live URL and the pattern self-test route(s) (/p/streaming-response-service) from the example; then run your own checks. On failure read ample logs --kind build then --kind runtime. Command: ample logs --kind build

Success Checks

Limitations

Cost Estimate

Evidence Summary

Last Verified At: 2026-09-21T01:14:18Z