fep

FEP-f06f: Object observers

Summary

Object observer is an ActivityPub actor that can be followed to receive object updates.

This proposal is intended to complement FEP-bad1: Object history collection.

Requirements

The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in RFC-2119.

Observers

Object observer is a followable actor. It doesn’t perform any activities on its own, but activities that affect the observed object are forwarded to its followers. Only objects and collections can be observed.

Object observer MUST have an observerOf property specifying the observed object, and it SHOULD have an Application type.

Objects can specify their observers using the observer property.

Object observer can be created with ActivityPub client by publishing a Create activity with user’s actor as its actor and with observer actor as its object.

Implementers MAY use a single cryptographic key for signing all HTTP requests made by observers on a server.

Use case: subscribing to a conversation

When conversation is represented by a collection, a collection observer can be created to support conversation subscriptions.

This actor can be attached to a collection via observer property, and can forward Add and Remove activities that modify it.

Non-forwarding observers

If forwarding is not desirable, object observers can use Announce activity to distribute observed activities.

Examples

Example of an observer actor:

{
  "@context": "https://www.w3.org/ns/activitystreams",
  "type": "Application",
  "id": "https://server.example/objects/123456/observer",
  "inbox": "https://server.example/objects/123456/observer/inbox",
  "outbox": "https://server.example/objects/123456/observer/outbox",
  "observerOf": "https://server.example/objects/123456"
}

References

CC0 1.0 Universal (CC0 1.0) Public Domain Dedication

To the extent possible under law, the authors of this Fediverse Enhancement Proposal have waived all copyright and related or neighboring rights to this work.