Event Model Playground

Build EventIDs, write catalog DSL, and query events — all in your browser

Your EventID
auth.user.login:1
Catalog DSL
Compiled EventIDs
auth.user.login:1 auth.user.logout:1 auth.session.expired:1
Generated Rust Code
use serde::{Serialize, Deserialize}; /// Event types for domain: auth pub mod auth { use super::*; #[derive(Debug, Clone, Serialize, Deserialize)] pub struct UserLoginV1 { pub user_id: uuid::Uuid, pub ip: std::net::IpAddr, pub method: String, } #[derive(Debug, Clone, Serialize, Deserialize)] pub struct UserLogoutV1 { pub user_id: uuid::Uuid, #[serde(skip_serializing_if = "Option::is_none")] pub reason: Option<String>, } #[derive(Debug, Clone, Serialize, Deserialize)] pub struct SessionExpiredV1 { pub session_id: uuid::Uuid, pub user_id: uuid::Uuid, } } // Usage with emit! macro: // emit!(auth.user.login:1, user_id: user.id, ip: req.ip, method: "oauth");

Sample Events

auth.user.login:1
2026-01-23 10:15:32
auth.user.logout:1
2026-01-23 10:45:12
auth.session.expired:1
2026-01-23 11:00:00
payments.order.created:1
2026-01-23 11:15:22
payments.order.charged:2
2026-01-23 11:15:45
payments.order.failed:1
2026-01-23 11:30:00
agent.task.assigned:1
2026-01-23 12:00:00
agent.code.generated:1
2026-01-23 12:05:30
agent.test.failed:1
2026-01-23 12:06:15

Query Results

Type a LIKE pattern to filter events...