backend redesign

This commit is contained in:
2026-03-11 18:47:11 -04:00
parent 8ff277c8c6
commit e99ef5d2dd
210 changed files with 12147 additions and 155 deletions

47
relay/src/main.rs Normal file
View File

@@ -0,0 +1,47 @@
mod config;
mod relay;
mod proto;
use anyhow::Result;
use config::Config;
use relay::Relay;
use tracing::{info, error};
use tracing_subscriber::{layer::SubscriberExt, util::SubscriberInitExt};
#[tokio::main]
async fn main() -> Result<()> {
// Initialize tracing
tracing_subscriber::registry()
.with(
tracing_subscriber::EnvFilter::try_from_default_env()
.unwrap_or_else(|_| "relay=info".into()),
)
.with(tracing_subscriber::fmt::layer())
.init();
info!("Starting Stateless ZMQ Relay Gateway");
info!("Architecture: Async event-driven with pub/sub notifications");
// Load configuration
let config = Config::from_env()?;
info!("Configuration loaded: {:?}", config);
// Create and run stateless relay
let relay = Relay::new(config)?;
// Handle shutdown signals
tokio::select! {
result = relay.run() => {
match result {
Ok(_) => info!("Relay stopped gracefully"),
Err(e) => error!("Relay error: {}", e),
}
}
_ = tokio::signal::ctrl_c() => {
info!("Received shutdown signal");
}
}
info!("ZMQ Relay Gateway stopped");
Ok(())
}