OxL Справочник OxL
РусскийEnglish

kw sharded

Контекстное слово — объявление актора (§12.5), топика (§10.5)

Список слов: §1.4

Синтаксис

ebnf
Actor       = "actor" Ident [ "sharded" "by" Ident ":" Type ] "{" { ActorMember } "}" ;
ebnf
Topic       = "topic" Ident ":" Type [ "sharded" "by" FieldPath ] ;

Грамматика: Прил. A

Определяется в

Примеры

oxl
@retain(ORDER_EVENTS_RETENTION)
topic OrderEvents: OrderEvent sharded by .userId

emit OrderEvents(e)                                       // публикация
for await e in OrderEvents.subscribe(key: uid, from: .Latest) { … }
for await e in OrderEvents.subscribe(group: "indexer") { index(e) }

— 10.5 Топики — рассылка по кластеру

oxl
@idle(ACCOUNT_IDLE)
actor Account sharded by id: AccountId {
  var balance: Money = Money.zero()
  @transient var hits: u64 = 0
  on activate { log.debug("account {id} up") }
  msg deposit(x: Money) { balance += x }
  msg balance() -> Money { balance }
}

Account(id).deposit(amount)

— 12.5 Шардированные акторы

Связанные диагностики

topic-without-journal, actor-not-hosted, data-rights, missing-policy, unknown-policy-target

См. также