kw sharded
Контекстное слово — объявление актора (§12.5), топика (§10.5)
Список слов: §1.4
Синтаксис
Actor = "actor" Ident [ "sharded" "by" Ident ":" Type ] "{" { ActorMember } "}" ;Topic = "topic" Ident ":" Type [ "sharded" "by" FieldPath ] ;Грамматика: Прил. A
Определяется в
- 10.5 Топики — рассылка по кластеру — Топик — распределённый broadcast с хранением во встроенном хранилище.
- 12.5 Шардированные акторы — Ключ объявляется в заголовке (sharded by имя
- 1.4 Ключевые слова — Зарезервированные (нельзя использовать как имена)
- 13.4 Авторизация и политики — Объект политики
Примеры
@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 Топики — рассылка по кластеру
@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)Связанные диагностики
topic-without-journal, actor-not-hosted, data-rights, missing-policy, unknown-policy-target