Unverified Commit 6bb4c90e authored by Hong Minhee's avatar Hong Minhee
Browse files

Fan out outgoing activities

parent 010d765a
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -8,6 +8,21 @@ Version 1.5.0

To be released.

-  Improved activity delivery performance with large audiences through
   a two-stage queuing system.  Sending activities to many recipients
   (e.g., accounts with many followers) is now significantly faster and uses
   less memory. [[#220]]

     -  Added `FederationQueueOptions.fanout` option.
     -  Changed the type of `FederationStartQueueOptions.queue` option to
        `"inbox" | "outbox" | "fanout" | undefined` (was `"inbox" | "outbox" |
        undefined`).
     -  Added `SendActivityOptions.fanout` option.
     -  Added OpenTelemetry instrumented span `activitypub.fanout`.
     -  The `ForwardActivityOptions` interface became a type alias of
        `Omit<SendActivityOptions, "fanout"> & { skipIfUnsigned: boolean }`,
        which is still compatible with the previous version.

 -  A `Federation` object now can have a canonical origin for web URLs and
    a canonical host for fediverse handles.  This affects the URLs constructed
    by `Context` objects, and the WebFinger responses.
@@ -65,12 +80,14 @@ To be released.
 -  Added more log messages using the [LogTape] library.  Currently the below
    logger categories are used:

     -  `["fedify", "federation", "fanout"]`
     -  `["fedify", "federation", "object"]`

[#127]: https://github.com/fedify-dev/fedify/issues/127
[#209]: https://github.com/fedify-dev/fedify/issues/209
[#211]: https://github.com/fedify-dev/fedify/issues/211
[#215]: https://github.com/fedify-dev/fedify/pull/215
[#220]: https://github.com/fedify-dev/fedify/issues/220
[multibase]: https://github.com/multiformats/js-multibase


+1 −0
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@
    "discoverability",
    "docloader",
    "eddsa",
    "fanout",
    "fedi",
    "fedibird",
    "fedify",
+1 B (256 KiB)

File changed.

No diff preview for this file type.

+6 −0
Original line number Diff line number Diff line
@@ -445,6 +445,12 @@ federation.setInboxListeners("/{identifier}/inbox", "/inbox")
> );
> ~~~~

> [!NOTE]
> The `~InboxContext.forwardActivity()` method does not use a [two-stage
> delivery process](./send.md#optimizing-activity-delivery-for-large-audiences), 
> because `~InboxContext.forwardActivity()` method is invoked inside inbox
> listeners, which are usually running in the background task worker.

[^2]: Some implementations may try to verify the unsigned activity by fetching
      the original object from the original sender's server even if they
      don't trust the forwarded activity.  However, it is not guaranteed
+7 −0
Original line number Diff line number Diff line
@@ -164,6 +164,13 @@ related to actor dispatcher.
The `["fedify", "federation", "collection"]` category is used for logging
messages related to collections (e.g., outbox, followers, following).

### `["fedify", "federation", "fanout"]`

*This category is available since Fedify 1.5.0.*

The `["fedify", "federation", "fanout"]` category is used for logging
messages related to fanning out outgoing activities.

### `["fedify", "federation", "http"]`

*This category is available since Fedify 0.9.0.*
Loading