We seek to make wiki-json independent - loosely coupled from the federation. It should not depend on external services to be comprehensible, to be useful.
Plugins can however break this. An active roster is an example of this. wiki-page says display this roster of lovely pages, and the roster plugin goes and fetches the json it needs from a remote domain. What if that domain no longer exists? That's where a snapshot would come in handy.
# What is a snapshot?
A snapshot is a fixed-in-time slice of state, embedded in the page-json. Forking the page-json would give you full access to the required info at the point in time the snapshot was taken.
# Fetch on edit
In the case of the active roster, an edit action would fetch the dynamic roster content supplied by the json-rpc microservice and embed this result in the page-json. When asked to display it's contents it would dynamically fetch new content, and only should that faildisplay the snapshot content. A fetch should be recorded in the journal.
# Logging and fetch on author view
In some circumstances, where having up to date information is considered vital, an author may wish to schedule regular update using the about datalog plugin, or simply every time they (the author of the content) viewed the page while logged in. This preference could be recorded in the markup.
# See also