prefect server in zig

reorganize to match prefect server structure

- events/ for event system (messaging)
- orchestration/ for state transition logic
- main.zig as only root module (besides logging.zig utility)

mirrors python prefect server layout

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

+5 -5
+1 -1
src/api/events.zig
··· 3 3 const std = @import("std"); 4 4 const zap = @import("zap"); 5 5 const log = @import("../logging.zig"); 6 - const messaging = @import("../messaging.zig"); 6 + const messaging = @import("../events/messaging.zig"); 7 7 8 8 const WebSockets = zap.WebSockets; 9 9
+1 -1
src/api/flow_runs.zig
··· 5 5 6 6 const db = @import("../db/sqlite.zig"); 7 7 const common = @import("common.zig"); 8 - const orchestration = @import("../orchestration.zig"); 8 + const orchestration = @import("../orchestration/orchestration.zig"); 9 9 10 10 fn sendJson(r: zap.Request, body: []const u8) void { 11 11 r.setHeader("content-type", "application/json") catch {};
+1 -1
src/messaging.zig src/events/messaging.zig
··· 1 1 const std = @import("std"); 2 2 const Thread = std.Thread; 3 3 const Mutex = Thread.Mutex; 4 - const log = @import("logging.zig"); 4 + const log = @import("../logging.zig"); 5 5 const zap = @import("zap"); 6 6 7 7 // websocket handle type for subscribers
+1 -1
src/orchestration.zig src/orchestration/orchestration.zig
··· 7 7 // - IncrementRunCount: increment run_count when entering RUNNING 8 8 9 9 const std = @import("std"); 10 - const log = @import("logging.zig"); 10 + const log = @import("../logging.zig"); 11 11 12 12 pub const StateType = enum { 13 13 PENDING,
+1 -1
src/services/event_persister.zig
··· 1 1 const std = @import("std"); 2 2 const Thread = std.Thread; 3 3 const log = @import("../logging.zig"); 4 - const messaging = @import("../messaging.zig"); 4 + const messaging = @import("../events/messaging.zig"); 5 5 const db = @import("../db/sqlite.zig"); 6 6 const common = @import("../api/common.zig"); 7 7