OxL Reference

src/main.oxl

oxl
use self.orders { Orders, relayStats }
use self.limits { STATS_PERIOD }
use std.time { every }

// main выполняется на узле после старта ролей; узел работает, пока размещает сервисы и фоновые задачи.
// ОТКЛОНЕНИЕ (DEVIATIONS.md #7): статистику считает внутренний rpc `Orders.publishStats` (в V.5 — `computeStats(&db)` прямо здесь:
// модульный `dep db` в `main` не реализован); он публикует её в топик StatsUpdates, как в V.5.
fn main() net, time {
  // Задача-лидер: выполняется ровно на одном узле с `runs leader("stats")` (роль saga); при его падении — на другом
  cluster.leader("stats") {
    every(STATS_PERIOD) { _ = Orders.publishStats() }
  }

  // На каждом узле api: одна подписка на топик → локальный broadcast → все клиенты узла
  if cluster.hasRole("api") {
    node.background.spawn {
      _ = relayStats()
    }
  }
}

Source: examples/shop/src/main.oxl