Siren

Collaborator Group Events

Domain events for collaborator group lifecycle, membership, program and distributor binding, and resolver registration.

Last updated: June 7, 2026

Collaborator group events fire as operators build and wire up collaborator groups: the reusable rosters that programs and distributors bind to instead of listing individuals. They cover four areas: the group’s own lifecycle, its membership, the bindings that connect a group to a program or distributor, and the registry-initiated events that extensions hook to register custom resolvers. All of them live under Siren\Plus\Core\Groups\Events (and, for structure resolution, Siren\Plus\Core\Groups\Structure\Events).

Lifecycle events

A group announces itself as it is created, edited, and removed. CollaboratorGroupCreated fires when a new group is persisted, carrying the new group’s id. CollaboratorGroupRenamed and CollaboratorGroupStructureChanged fire when an operator changes the name or switches the structure between flat, linear chain, and parent-child. CollaboratorGroupDeleted fires as the group is removed, giving listeners a window to capture state before the row is gone.

Membership events

Membership changes fire their own events so the activity feed and any external mirror stay current. CollaboratorAddedToCollaboratorGroup and CollaboratorRemovedFromCollaboratorGroup fire as collaborators join or leave, and CollaboratorGroupMemberMetadataChanged fires when a member’s structural metadata changes, such as a new position in a chain or a new parent in a tree.

Binding events

A group does nothing on its own until a program or distributor binds to it. ProgramBoundToCollaboratorGroup and ProgramUnboundFromCollaboratorGroup fire when a program starts or stops paying through a group, and DistributorBoundToCollaboratorGroup and DistributorUnboundFromCollaboratorGroup do the same on the distributor side.

Registry-initiated events

Three registry-initiated events are the extension seams for the group system. CollaboratorGroupResolverRegistryInitiated and CollaboratorGroupMemberResolverRegistryInitiated let extensions register field resolvers for groups and members, and CollaboratorGroupStructureResolverRegistryInitiated is the seam the Pro tier uses to register the linear chain and parent-child structure resolvers on top of the Plus flat default. To register a custom structure, see collaborator group structures.