Skip to main content

Crate seesaw_insight

Crate seesaw_insight 

Source
Expand description

Seesaw Insight - Real-time observability for Seesaw workflows

This crate provides real-time visualization and monitoring for Seesaw workflows through WebSockets, Server-Sent Events (SSE), and a web dashboard.

§Architecture

  • stream module: Cursor-based reader for seesaw_stream table
  • tree module: Workflow causality tree builder
  • websocket module: WebSocket support for real-time updates
  • web module: Axum server with SSE/WS endpoints and static file serving

§Usage

use seesaw_insight::web;
use seesaw_postgres::PostgresStore;
use sqlx::postgres::PgPoolOptions;

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    let pool = PgPoolOptions::new()
        .max_connections(5)
        .connect("postgres://localhost/seesaw")
        .await?;

    let store = PostgresStore::new(pool);
    web::serve(store, "127.0.0.1:3000", Some("./static")).await?;
    Ok(())
}

Re-exports§

pub use stream::StreamEntry;
pub use stream::StreamReader;
pub use tree::EventNode;
pub use tree::TreeBuilder;
pub use web::app;
pub use web::serve;

Modules§

stream
Stream reader for observability events
tree
Workflow causality tree builder
web
Web server with SSE and WebSocket endpoints for real-time stream
websocket
WebSocket support for real-time stream updates