kw saga
Зарезервированное слово
Список слов: §1.4
Синтаксис
Saga = "saga" Ident "(" [ Params ] ")" "->" Type "{" SStep { "->" SStep } "}" ;Грамматика: Прил. A
Определяется в
- 11.1 Виды транзакций — Виды транзакций
- 11.3 Саги — Сага — последовательность шагов (синтаксис шагов как в цепочке §8.4); после шага МОЖЕТ стоять undo x => компенсация, где x — результат шага.
- 12.1 Объявление кластера — В программе не больше одного cluster.
- 1.4 Ключевые слова — Зарезервированные (нельзя использовать как имена)
- 12.7 Зависимости — provide Тип = выражение (for role r, …)?
- 18.4 Симуляция — В sim детерминированы планировщик, сеть, часы, случайность и отказы диска; результат зависит только от seed.
Примеры
saga checkout(cart: Cart) -> Order {
Inventory.reserve(cart) undo r => Inventory.release(r.id)
-> Payments.charge(cart.total) undo p => Payments.refund(p.id)
-> Orders.create(cart, it)
}provide Db = Db.open(App.get().dbUrl) for role api, saga
provide Payments = PaymentsClient.new(App.get().stripeKey)
impl Orders { dep db: Db; dep pay: Payments }Связанные диагностики
saga-decl, saga-idempotency, actor-not-hosted, cluster-auth, cluster-decl, cluster-needs, cluster-seeds, placement-conflict, saga-without-role, service-not-served, topic-without-journal, unknown-role, duplicate-provide, missing-provide