OxL Reference

kw sharded

Contextual keyword — actor declaration (§12.5), topic declaration (§10.5)

The list of words: §1.4

Syntax

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

Grammar: App. A

Defined in

Examples

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

emit OrderEvents(e)                                       // publication
for await e in OrderEvents.subscribe(key: uid, from: .Latest) { … }
for await e in OrderEvents.subscribe(group: "indexer") { index(e) }

— 10.5 Topics — cluster-wide fan-out

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 Sharded actors

Related diagnostics

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

See also