AsyncAPI
Dual Mode
Every schema subject in event7 has an AsyncAPI status — generated from your registry, imported from a spec, or not yet documented. The dual mode gives you a real-time overview of documentation coverage with drift detection when schemas evolve.
The three axes
Each subject carries three independent attributes that describe its AsyncAPI documentation state:
importedgeneratednullWhere the spec came from. Imported = uploaded from a YAML/JSON file. Generated = built from schema + enrichments by event7.
documentedreadyrawDocumentation coverage. Documented = spec exists. Ready = has enrichments or channel bindings but no spec yet. Raw = nothing.
in_syncoutdatedunknownDrift between the spec and the current schema version. Only applies to documented subjects.
These axes are independent. A subject can be origin=generated, status=documented, sync=outdated — meaning a spec was generated but the schema has evolved since.
Three workflows
Build an AsyncAPI 3.0 spec from a schema's content and enrichments. Includes Kafka bindings (partitions, replication, Magic Byte encoding), key schema separation (-value → -key auto-detection), and Avro-to-JSON-Schema conversion.
Result: origin=generated, status=documented
Upload an AsyncAPI v3 spec (YAML or JSON) to create channels, bindings, enrichments, and optionally register schemas — all in one operation. Two-phase: preview (dry-run) then apply. Supports 9 broker protocols.
Result: origin=imported, status=documented
Real-time dashboard showing every subject's AsyncAPI status with KPIs, coverage metrics, and per-subject drift detection. Filterable by status, origin, and search.
Result: KPIs + per-subject table
Drift detection
When a schema evolves in the registry, the existing AsyncAPI spec may become outdated. event7 detects this automatically using a two-tier approach — no N+1 queries:
Compares the schema version stored at generation time with the current latest version from the provider. Different version = outdated. Zero extra fetches.
If the version matches but a hash was stored, event7 computes SHA-256 of the current schema content and compares. Catches content changes within the same version (rare but possible with Apicurio).
The overview batches 4 data sources (subjects, enrichments, specs, bindings) to avoid N+1 queries — performance stays flat regardless of registry size.
Overview KPIs
The AsyncAPI overview page shows five KPI cards and a segmented coverage bar:
Coverage bar
Spec viewer
Clicking a documented subject opens a 75vw sheet with three tabs:
Rendered AsyncAPI spec using the official AsyncAPI React component (CDN). Read-only, styled visualization.
Form editor for title, description, owner, server host, and tags. Save updates the spec and sets is_auto_generated=false.
Raw JSON textarea with live validation. Status bar shows valid/invalid. Save persists the raw content.
Export as YAML is available from the sheet header. After saving, the overview refreshes automatically to reflect the updated spec.
Multi-broker support
AsyncAPI import auto-detects the broker protocol from the spec and creates channels with the correct broker_type:
| Protocol | Broker Type | Resource Kind |
|---|---|---|
| kafka / kafka-secure | kafka | topic |
| amqp / amqps | rabbitmq | exchange / queue |
| redis | redis_streams | stream |
| pulsar / pulsar+ssl | pulsar | topic |
| nats | nats | subject |
| googlepubsub | google_pubsub | topic |
| sns / sqs | aws_sns_sqs | topic / queue |
| amqp (Azure) | azure_servicebus | topic / queue |
Smart registration routes schemas based on registry type: Apicurio accepts all formats, Confluent-like registries only receive Kafka/Redpanda schemas — others are skipped with a warning.
Catalog integration
The Catalog page displays AsyncAPI status inline for every schema:
The CatalogSheet replaced the old JSON drawer. It provides two tabs: Schema (raw content + field structure) and AsyncAPI (rendered spec with edit/export).
Generation options
When generating a spec, these optional parameters control the output:
| Parameter | Default | Description |
|---|---|---|
| topic_name | auto | Override the deduced topic name (strips -value/-key suffix by default) |
| partitions | — | Kafka channel binding: number of partitions |
| replication_factor | — | Kafka channel binding: replication factor |
| include_key_schema | true | Auto-detect -key schema and include as separate message |
| include_confluent_bindings | true | Add Magic Byte (schemaIdLocation, schemaIdPayloadEncoding) |
| include_examples | true | Generate field examples from type heuristics |
All parameters are optional — zero breaking change from the default generation. Set include_confluent_bindings=false for provider-agnostic output.
Quick start
Roadmap
| AsyncAPI 3.0 generation with Kafka bindings | ✓ Available |
| Import — preview + apply, multi-broker | ✓ Available |
| Smart schema registration (provider-aware) | ✓ Available |
| Dual mode overview with KPIs | ✓ Available |
| Drift detection (version + hash) | ✓ Available |
| Spec viewer (Docs / Edit / JSON) | ✓ Available |
| Catalog integration (column + sheet) | ✓ Available |
| Batch generate (all subjects at once) | Planned |
| Export Mode 3 — real channels → spec | Planned |
| CloudEvents envelope integration | Planned |