Skip to main content
Generalmelodic-software

asyncapi-design

Event-driven API specification with AsyncAPI 3.0 for message-based architectures

Stars
74
Source
melodic-software/claude-code-plugins
Updated
2026-04-07
Slug
melodic-software--claude-code-plugins--asyncapi-design
View on GitHubRaw SKILL.md

// install — copy + paste into any project

mkdir -p .claude/skills && curl -fsSL https://raw.githubusercontent.com/melodic-software/claude-code-plugins/HEAD/plugins/formal-specification/skills/asyncapi-design/SKILL.md -o .claude/skills/asyncapi-design.md

Drops the SKILL.md into .claude/skills/asyncapi-design.md. Works with Claude Code, Cursor, and any agent that loads SKILL.md files from .claude/skills/.

AsyncAPI Design Skill

When to Use This Skill

Use this skill when:

  • Designing event-driven APIs - AsyncAPI 3.0 for message-based architectures
  • Configuring message brokers - Kafka, RabbitMQ, MQTT, WebSocket bindings
  • Implementing in C# - Event contracts, MassTransit, Confluent Kafka
  • Event versioning - Schema evolution and backward compatibility

MANDATORY: Documentation-First Approach

Before creating AsyncAPI specifications:

  1. Invoke docs-management skill for event-driven patterns
  2. Verify AsyncAPI 3.0 syntax via MCP servers (context7 for latest spec)
  3. Base all guidance on AsyncAPI 3.0 specification

AsyncAPI vs OpenAPI

Aspect OpenAPI AsyncAPI
Communication Request/Response Event-Driven
Protocol HTTP/HTTPS Kafka, RabbitMQ, MQTT, WebSocket
Initiator Client requests Publisher emits
Pattern Synchronous Asynchronous
Use Case REST APIs Message queues, streaming, IoT

AsyncAPI 3.0 Structure Overview

asyncapi: 3.0.0
info:
  title: API Title
  version: 1.0.0

servers:
  production:
    host: kafka.example.com:9092
    protocol: kafka

channels:
  orderCreated:
    address: orders.created
    messages:
      orderCreatedMessage:
        $ref: '#/components/messages/OrderCreated'

operations:
  publishOrderCreated:
    action: send
    channel:
      $ref: '#/channels/orderCreated'

components:
  messages: { }
  schemas: { }
  securitySchemes: { }

For complete template: See basic-template.md

Quick Reference

Supported Protocols

Protocol Use Case Binding Version
Kafka High-throughput streaming 0.5.0
AMQP (RabbitMQ) Message queuing 0.3.0
MQTT IoT, lightweight messaging 0.2.0
WebSocket Real-time browser comms -

For protocol-specific patterns: See protocol-patterns.md

Channel Naming Convention

{domain}.{entity}.{action}.{version}
Example: orders.order.created.v1

Workflow

  1. Identify events - What significant occurrences need to be communicated?
  2. Define channels - What topics/queues will carry these events?
  3. Design messages - What data does each event contain?
  4. Choose protocol - Kafka, RabbitMQ, MQTT, etc.?
  5. Add bindings - Protocol-specific configuration
  6. Document security - Authentication and authorization
  7. Version strategy - How will events evolve?
  8. Generate code - Use AsyncAPI generator for clients/handlers

References

Load on-demand based on need:

Reference Load When
basic-template.md Creating a new AsyncAPI spec from scratch
protocol-patterns.md Configuring Kafka, RabbitMQ, MQTT, WebSocket
csharp-implementation.md Implementing in .NET/C# with MassTransit or Confluent
event-design-patterns.md Event envelopes, versioning, best practices

Related Skills (Cross-Plugin)

Phase Skill Plugin Purpose
DESIGN asyncapi-design (this skill) formal-specification Architecture research, pattern selection
AUTHORING asyncapi-authoring spec-driven-development Concrete YAML file creation

Workflow: Design (research event patterns) → Author (create YAML) → Implement (generate code)

MCP Research

For current AsyncAPI patterns and tools:

perplexity: "AsyncAPI 3.0 specification" "event-driven API design patterns"
context7: "asyncapi" (for official documentation)
ref: "AsyncAPI spec examples" "Kafka binding patterns"

Version History

  • v2.0.0 (2026-01-17): Refactored to progressive disclosure pattern
    • Extracted 4 reference files (~650 lines)
    • Hub reduced from 789 to ~130 lines
  • v1.0.0 (2025-12-26): Initial release

Last Updated: 2026-01-17