A human-readable JSON format for designing event-driven systems. Version control your architecture. Generate code from your model.
One command to install, one command to run
Giraflow watches your .giraflow.json file and serves a live web visualization. Every change is reflected instantly.
Keep your model in version control alongside your code. Review changes in pull requests. Generate documentation automatically.
Event Modeling is powerful. But where do you store the model?
Everything you need to model event-driven systems
Edit with any text editor. No proprietary formats. Easy to read, write, and review in pull requests.
Browser-based visualization with hot reload. See timeline, slices, and scenarios update as you type.
Terminal visualization for quick checks. Timeline, slice, and table views. Export to file.
Given-When-Then scenarios for commands and projections. Your model becomes executable documentation.
Link HTML mockups to actors. Visualize what each user role sees and interacts with.
JSON Schema for IDE support. Autocomplete, validation, and documentation in your editor.
Model your entire system in one readable file
{
"name": "Order System",
"timeline": [
{
"type": "event",
"name": "OrderPlaced",
"tick": 10
},
{
"type": "state",
"name": "PendingOrders",
"tick": 20,
"sourcedFrom": ["OrderPlaced"]
},
{
"type": "actor",
"name": "Warehouse",
"tick": 30,
"readsView": "PendingOrders",
"sendsCommand": "ShipOrder"
},
{
"type": "command",
"name": "ShipOrder",
"tick": 40
},
{
"type": "event",
"name": "OrderShipped",
"tick": 50
}
]
}
From idea to implementation in four steps
Define your timeline with events, states, actors, and commands in JSON
Use the web preview or CLI to see your model as a swimlane diagram
Add scenarios with Given-When-Then to define behavior
Build your system guided by the model, generate tests from specs
Start designing event-driven systems with a format you can actually version control.