MishkaCmsCore. Runtime. Resources. Notifiers. PageEditions
(Mishka CMS Core v0.0.1)
Copy Markdown
View Source
Keeps a written page's row in MishkaCmsCore.Runtime.States.SiteState's editions index, on the
node that wrote it — what MishkaCmsCore.Runtime.PageEditions.editions/2 reads instead of the
database.
Notifiers run after the transaction commits, for every action of a resource that lists this —
master twins, a draft's publish, a bulk action and an action added later included — and in the
writing process, so the request that writer makes next is answered with the row as it now is. A
create or an update puts the row (SiteState.put_page_edition/1), which takes it out again when
it is inactive or archived; an archive or a delete takes it out.
Every other node hears the same write over Ash.Notifier.PubSub and applies it in SiteState,
which leaves alone the broadcasts this node sent.
No page is compiled again for this. A page reads its group's editions on every render, so a sibling added, moved or removed is offered, or no longer offered, without its module changing.