AsyncAPI Designer
The Talisman AsyncAPI Designer is the central workspace for architecting event-driven systems. It allows developers to model the flow of data between internal microservices and external systems using a visual, topology-first approach.
The Designer automatically maintains the asyncapi.json specification in shared folder, which serves as the "Single Source of Truth" for your platform's event contracts.
Architecture Overview
The design process follows a 3-phase workflow: Configuration → Topology → Generation.
Configuration (Pre-requisites)
Before drawing lines on a graph, you must define the building blocks. These assets act as the "library" that your topology will reference.
Create Beans
Define the low-level connection details for your brokers.
- File:
[server]-beans.camel.yaml - Purpose: Handles SSL context, authentication, and connection pooling.
- Example:
artemis-beans.camel.yamlcontaining the JMSConnectionFactory. -
- Location:
shared
- Location:
Create Templates
Create the reusable Camel route logic using placeholders.
- Send Template: Logic for publishing (e.g., set headers, log body).
- Receive Template: Logic for consuming (e.g., error handling, transactions).
- Key Placeholders:
{{channel.address}},{{channelId}},{{serverId}},{{operationId}}. -
- Location:
shared
- Location:
Create Schemas
Define Data Contracts to ensure type safety.
- Format: JSON Schema Draft 2020-12.
- Example:
Order.v1.schema.jsondefining the fields for an order. - Location:
shared
AsyncAPI Topology
Once the configuration assets exist, you assemble them into a cohesive system map.
Create Server
Define the physical infrastructure and link it to the configuration.
- Action: Define server (e.g., "Artemis").
- Link: Attach
artemis-beans.camel.yaml,artemis-send.camel.yaml, andartemis-receive.camel.yamlvia the server properties.
Define Messages
Wrap your raw Schemas into formal AsyncAPI Messages.
- Action: Create
Order.v1message. - Link: Point the payload to
#/components/schemas/Order.v1.
Create Channel
Define the specific address where messages flow.
- Action: Create
order.received.v1. - Link: Assign the Server (Artemis) and the Message (Order.v1) to this channel.
Create Operations
Define the operations to consume from / produce into channels.
- Action: Create
onOrderReceived(Subscriber). - Project Assignment: Select the
managerproject ID. - External Systems: Check "External" if the operation belongs to a 3rd party to visualize it without generating code.
Generation
The final phase transforms your visual design into executable Apache Camel code.
Generate Project
If the target project (e.g., manager) does not exist, Talisman scaffolds the Git structure, Dockerfile or deployment resources, and application.properties from templates.
Generate Routes
Talisman combines your Templates with your Operations.
- Output: Files named
gen-{{operationId}}.camel.yamlare created inside the project's folder. - Mechanism: The placeholders in your templates are replaced with the actual values (channel addresses, server IDs, etc) from the AsyncAPI definition.
Result
Target project (e.g., manager) contains routes for all operations designed.
Runtime Observability
Talisman bridges the gap between Design and Runtime. When projects are deployed, the platform automatically collects throughput metrics from the running containers and overlays them onto your architecture diagrams.
High-Level Topology
Integration engineers can observe the volume of messages processed by each operation directly on the AsyncAPI Topology graph. This provides an instant "health check" of the entire system flow.
Project Drill-Down
For deeper investigation, users can drill down into a specific Project (e.g., manager). This view displays the same live metrics at the Route Level, allowing you to identify bottlenecks or verify logic within specific Camel routes.








