Skip to main content

Studio reference

View as Markdown

Everything about Studio and its canvases in one place.

Configuration​

studio​

OptionTypeDefaultDescription
studio.enabledbooleanfalseTurns Studio on in production. Studio is on in eventcatalog dev unless this is false. false turns it off everywhere.

storage​

OptionTypeDefaultDescription
storage.type'memory' | 'sqlite''memory''memory' keeps canvases while the server runs. 'sqlite' keeps them in a database file.
storage.pathstring'.eventcatalog/eventcatalog.db'The SQLite database file, relative to your catalog.

SQLite storage needs Node.js 22.13 or later.

OptionWhy it matters for Studio
outputMust be 'server' for Studio in production, and for agents to connect through the MCP server.
auth.enabledWith authentication on, only signed-in people can open canvases.
mcp.enabledAgents connect through the MCP server. Setting it to false stops agents connecting.
security.allowedDomainsNeeded when a proxy serves your catalog over HTTPS.

When Studio is on​

Commandstudio.enabled not settruefalse
eventcatalog devOnOnOff
eventcatalog start (output: 'server')OffOnOff
Static build (output: 'static')OffOffOff

Example​

eventcatalog.config.js
export default {
output: 'server',
studio: {
enabled: true,
},
storage: {
type: 'sqlite',
path: '/data/eventcatalog.db',
},
};

See the full configuration reference for every EventCatalog option.

Canvas​

Toolbar​

ButtonShortcutWhat it does
LockLocks the canvas, so it can be looked at but not changed
SelectVSelect and move nodes
HandHDrag to move around
L1 / L2 / L31 2 3Change the level
Sticky noteNClick where the note goes
TextTClick anywhere and type
CommentCClick a node, or a spot, to comment
HotspotAClick a node, or a spot, to flag a risk

The controls at the bottom left zoom, undo and redo, fit the view (⇧ 1), reorder the diagram, and list comments and hotspots.

Levels​

LevelShows
L1Domains, systems and their relationships
L2Services and data stores
L3Everything, including messages and channels

L1 is unavailable until the canvas has a domain or system.

Canvas menu​

The three dots next to the canvas title.

The canvas menu

ItemShortcut
Open…⌘ O
Save to file…⌘ S
Export image…⌘ ⇧ E
Live collaboration…
Connect your AI agent…
Help?
Rename canvas
Copy link
New canvas
Delete canvas

The bottom of the menu shows the connection status, for example Connected.

Right-click menus​

Items are grouped, with their shortcuts on the right. On a locked canvas, only the items that don't change it are shown.

OnItems
A nodeEdit details · Cut, Copy, Paste, Duplicate · Add comment, Add hotspot, Add note · Delete
A sticky note or textEdit text · Cut, Copy, Paste, Duplicate · Colour (sticky notes) · Add comment · Delete
The canvasPaste here · Add sticky note, Add comment, Add hotspot · Reorder diagram

Cut is offered at L3, where nodes can be copied.

Statuses​

StatusMeaning
DraftBeing worked on. Every canvas starts as a draft.
ProposedReady for review
AcceptedThe agreed design
RejectedDecided against, kept for the record
  • Each status change can have a note. The status menu shows the history, with who changed it, when and the note.
  • Changing the nodes or connections on an accepted or rejected canvas makes it a draft again.

Hotspots​

FieldValues
SeverityCritical (red), Warning (amber) or Info (blue)
TitleUp to 120 characters, for example "Single point of failure"
DescriptionOptional. Why it matters, and what to do about it
  • A hotspot is on a node, and moves with it, or on a spot on the canvas. Deleting a node deletes its hotspots, and undo brings them back.
  • A marker shows the severity's icon, with a count when there's more than one hotspot on it. Click it to open the hotspot beside it.
  • An open hotspot shows its title, description, and who flagged it and when. Edit or remove it from its header, or press Delete to remove it.
  • The Hotspots list at the bottom left has one row per hotspot, most severe first, with the node it's on. Click a row, or rest the pointer on it, to go to that hotspot and open it.
  • At L1 and L2, hotspots inside a domain or system are shown on that domain or system.

Studio page​

The Studio page lists canvases with their status, contents, open comments, who created them, and when they were last updated. Filter by name or status. Each canvas's menu has Make a copy and Delete.

Limits​

LimitValue
Canvas title200 characters
Your name60 characters
.eventcatalog file2 MB

Components and connections​

Components​

New components start at version 0.0.1.

GroupComponentDescription
BoundariesDomainA business area, e.g. Sales
SystemServices doing one job
ServicesServiceAn API, worker or function
ViewA screen or app people use
External SystemA third party you use
AgentAn AI agent at work
MessagesEventSomething that happened
CommandA request to do something
QueryA request for data
ChannelA topic, queue or bus
DataDatabaseTables, e.g. PostgreSQL
CacheFast data, e.g. Redis
Search indexSearch, e.g. Elasticsearch
Object storeFiles and blobs, e.g. S3
EntityPart of the domain model
PeopleActorSomeone who uses it
TeamWho owns what

Sticky notes and text are added from the toolbar. Agents and the assistant can add them too, and they're always placed clear of other nodes.

Catalog resources​

You can add these resources from your catalog: domains, systems, services, events, commands, queries, channels and data stores. They are added at their latest version, with their name, version and summary from your catalog.

Connection labels​

When you connect two nodes, Studio labels the connection with EventCatalog's wording:

FromToLabel
Service, agent, actor, external system or viewEventpublishes event
Service, agent, actor, external system or viewCommandinvokes
Service, agent, actor, external system or viewQueryrequests
EventAnything but a message or channelsubscribed by
Command or queryAnything but a message or channelaccepts
MessageMessagetriggers
MessageChannelsent to
ChannelAnythingroutes to
Anything elseChannelpublishes to
AnythingData storewrites to
Data storeAnythingread by
ActorAnythinguses
AnythingViewserves
AnythingExternal systemcalls
AnythingActornotifies
TeamAnythingowns
EntityEntityreferences
MessageEntitycarries
Anything elseEntitymanages

Agents can set their own labels through the MCP tools.

MCP tools​

When Studio is on, the EventCatalog MCP server has these tools for canvases. Unlike the other MCP tools, they change your canvases.

ToolWhat it does
openCanvasShows a canvas in the chat, in clients that support MCP Apps
listCanvasesLists canvases and who is on each one
createCanvasCreates a canvas and returns its link
getCanvasReads a canvas: its nodes, connections, hotspots, comments and who is on it
addToCanvasAdds catalog resources, new components, sticky notes and text, and connects them
updateCanvasNodeRenames, describes, versions or moves a node
connectCanvasNodesConnects nodes
removeFromCanvasRemoves nodes or connections
layoutCanvasLays out the whole canvas
setCanvasStatusSets the status to draft, proposed, accepted or rejected, with a note
commentOnCanvasStarts a comment thread on a node or a spot
replyToCanvasCommentReplies to a thread
resolveCanvasCommentResolves or reopens a thread

Every tool takes an optional agentName, the name people on the canvas see. It defaults to the name of the client, for example Claude, Claude Code, ChatGPT or Cursor.

addToCanvas can bring more than one resource at a time:

  • contents: true on a catalog domain or system adds it with everything in it: its systems, services, messages and data stores, connected and laid out.
  • connections on a catalog service or message adds what it connects to. For a service: sends, receives and dataStores. For a message: senders and receivers.
  • A node with type note is a sticky note, and type text is text on the canvas, with an optional fontSize.

How agents appear​

  • An agent has its own pointer and name on the canvas.
  • Its changes appear one step at a time, with what it is doing, for example "Connecting InstalmentPlanApproved to Notification Service".
  • A banner shows when an agent is working. Choose Follow to move your view with it.

Browser tools (WebMCP)​

When WebMCP is turned on in the Connect your AI agent dialog, the open canvas offers agents in the browser these tools: get_canvas, search_catalog, add_to_canvas, update_node, connect_nodes, remove_from_canvas, layout_canvas, set_canvas_status, add_comment, reply_to_comment, resolve_comment and show_nodes.

Assistant tools​

When you draw with AI, the EventCatalog Assistant works on the canvas it was opened on with these tools, using the model in eventcatalog.chat.js. They're only offered when Studio is on.

ToolWhat it does
getCanvasReads the canvas: its nodes, connections, hotspots and comments
addToCanvasAdds catalog resources, new components, sticky notes and text, like the MCP tool
updateCanvasNodeRenames, describes, versions, moves or resizes the text of a node
connectCanvasNodesConnects nodes
removeFromCanvasRemoves nodes or connections
layoutCanvasLays out the whole canvas, when you ask it to
addHotspotFlags a node or a spot with a critical, warning or info hotspot
showOnCanvasTakes your view to nodes and highlights them
walkThroughShows a step-by-step walkthrough in the chat, with each step's nodes
  • The assistant appears on the canvas as EventCatalog AI, with its own pointer, like other agents. It works about three times as fast as an MCP agent, because you're waiting on it in the chat.
  • After a turn where it added nodes or connections, the canvas is laid out again, with sticky notes and text kept beside what they're about.

Keyboard shortcuts​

Press ? on a canvas to see these shortcuts. On Windows and Linux, use Ctrl instead of ⌘.

The keyboard shortcuts dialog

Tools​

ActionShortcut
SelectV
Hand (move around)H
Sticky noteN
TextT
CommentC
HotspotA
Level 1 / 2 / 31 2 3
Back to selectingEsc

Canvas​

ActionShortcut
Select everything⌘ A
Select several⇧ + click
Delete what's selectedDelete
Remove the open hotspotDelete
Duplicate⌘ D
Copy / paste⌘ C / ⌘ V
Undo / redo⌘ Z / ⌘ ⇧ Z
Move aroundScroll
Zoom⌘ + scroll
Fit view⇧ 1

Notes and text​

ActionShortcut
Write on oneDouble-click
Finish writingEsc

Files​

ActionShortcut
Open a file⌘ O
Save to file⌘ S
Export image⌘ ⇧ E
Help?