use std::env; mod identity; mod member; mod member_class; mod member_level; mod site; #[tokio::main] async fn main() -> Result<(), Box> { let url_broker = match env::var_os("URL_BROKER") { Some(v) => v.into_string().unwrap(), None => "".to_string(), }; let queue_broker = match env::var_os("QUEUE_BROKER") { Some(v) => v.into_string().unwrap(), None => "".to_string(), }; let broker_opts = nats::asynk::Options::new(); let connection_broker = broker_opts.connect(url_broker).await?; let site_service = site::service::Service::new(connection_broker.clone(), queue_broker.clone()); let identity_service = identity::service::Service::new(connection_broker.clone(), queue_broker.clone()); let member_class_service = member_class::service::Service::new(connection_broker.clone(), queue_broker.clone()); let member_level_service = member_level::service::Service::new(connection_broker.clone(), queue_broker.clone()); let member_service = member::service::Service::new(connection_broker.clone(), queue_broker.clone()); println!("Server edge[beteran-backend-server-edge] is started"); futures::try_join!( site_service.subscribe(), identity_service.subscribe(), member_class_service.subscribe(), member_level_service.subscribe(), member_service.subscribe(), )?; Ok(()) }