asyncapi-design

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

16 stars

Best use case

asyncapi-design is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

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

Teams using asyncapi-design should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/asyncapi-design/SKILL.md --create-dirs "https://raw.githubusercontent.com/diegosouzapw/awesome-omni-skill/main/skills/backend/asyncapi-design/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/asyncapi-design/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How asyncapi-design Compares

Feature / Agentasyncapi-designStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

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

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# 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

```yaml
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](references/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](references/protocol-patterns.md)

### Channel Naming Convention

```text
{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](references/basic-template.md) | Creating a new AsyncAPI spec from scratch |
| [protocol-patterns.md](references/protocol-patterns.md) | Configuring Kafka, RabbitMQ, MQTT, WebSocket |
| [csharp-implementation.md](references/csharp-implementation.md) | Implementing in .NET/C# with MassTransit or Confluent |
| [event-design-patterns.md](references/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:

```text
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

Related Skills

domain-driven-design

16
from diegosouzapw/awesome-omni-skill

Plan and route Domain-Driven Design work from strategic modeling to tactical implementation and evented architecture patterns.

data-designer

16
from diegosouzapw/awesome-omni-skill

Generate high-quality synthetic datasets using statistical samplers and Claude's native LLM capabilities. Use when users ask to create synthetic data, generate datasets, create fake/mock data, generate test data, training data, or any data generation task. Supports CSV, JSON, JSONL, Parquet output. Adapted from NVIDIA NeMo DataDesigner (Apache 2.0).

analytics-design

16
from diegosouzapw/awesome-omni-skill

Design data analysis from purpose clarification to visualization. Use when analyzing data, exploring BigQuery schemas, building queries, or creating Looker Studio reports.

---name: aav-vector-design-agent

16
from diegosouzapw/awesome-omni-skill

description: AI-powered adeno-associated virus (AAV) vector design for gene therapy including capsid engineering, promoter selection, and tropism optimization.

Schema Design

16
from diegosouzapw/awesome-omni-skill

Migration-ready database schema design with normalization and indexing strategies

database-design

16
from diegosouzapw/awesome-omni-skill

Database design principles and decision-making. Schema design, indexing strategy, ORM selection, serverless databases.

asyncapi-docs

16
from diegosouzapw/awesome-omni-skill

AsyncAPI specification handling for event-driven API documentation. Parse, validate, and generate documentation for message-based APIs including Kafka, MQTT, WebSocket, and AMQP systems.

asyncapi-authoring

16
from diegosouzapw/awesome-omni-skill

Author and validate AsyncAPI 3.0 specifications for event-driven API design, message brokers, and async communication patterns

API Test Design

16
from diegosouzapw/awesome-omni-skill

Strategies for designing comprehensive API tests including contract testing, integration testing, and performance testing

api-rest-design

16
from diegosouzapw/awesome-omni-skill

Apply when designing RESTful APIs, defining endpoints, HTTP methods, status codes, and response formats.

api-portal-design

16
from diegosouzapw/awesome-omni-skill

API documentation and developer portal design

api-first-design

16
from diegosouzapw/awesome-omni-skill

**API FIRST DESIGN**: 'API 만들어', 'API 설계', '엔드포인트', 'REST', 'Swagger', 'OpenAPI', 'DTO', 'CRUD' 요청 시 자동 발동. *.controller.ts/*.dto.ts/routes/** 파일 작업 시 자동 적용. Contract-First, 표준 응답 포맷, 타입 자동 생성.