Skip to content

Target System Topology

This is the target topology, not current production state. groupsdrupalorg has no Group module installed yet, the Matrix integration modules are mostly planned, and the real Events implementation runs on Group v3.3 in pl-drupalorg, not v4. This diagram shows what the pieces are meant to look like once they converge — module/ system relationships only, no field-level detail.

flowchart TB
  subgraph core["Drupal Core"]
    node["Node<br/>(content, includes Event bundle)"]
    user["User"]
    taxonomy["Taxonomy"]
    comment["Comment"]
  end

  subgraph groupv4["Group v4"]
    grp["Group"]
    grouptype["Group Type"]
    grouprel["Group Relationship<br/>(generic polymorphic join)"]
    grouprole["Group Role"]
  end

  subgraph events["Events"]
    event["Event<br/>(a node bundle — not a separate entity)"]
  end

  subgraph matrix["Matrix Integration"]
    space["Matrix Space"]
    room["Matrix Room"]
    eventmap["Event Map<br/>(Drupal entity to Matrix event)"]
    identity["Identity Map<br/>(Drupal user to Matrix user)"]
  end

  event -.->|"is a bundle of"| node

  grouprel -->|"attaches to"| grp
  grouprel -->|"attaches any entity —<br/>node (incl. events), user, etc."| node
  grouprel -->|"or"| user
  grp -->|"typed by"| grouptype
  grouprel -->|"carries"| grouprole

  grp -->|"represented by"| space
  space -->|"contains"| room
  node -->|"maps to (when threaded)"| eventmap
  comment -->|"maps to (when threaded)"| eventmap
  user -->|"links to"| identity

Three real modules build on Drupal core’s generic entity system, not on each other directly:

  • Events isn’t a separate system. It’s just a node bundle. It only becomes group-aware or Matrix-aware by going through the same generic mechanisms every other content type uses — group_relationship for group attachment, the event/comment map for Matrix threading.
  • Group v4’s group_relationship is the one true integration point for “is this content in a group.” Events, generic nodes, and users all attach through it identically — there’s no Events-specific Group code.
  • Matrix attaches at two separate seams: Groups → Spaces (one Space per Group), and any threaded node/comment → the event map. Events participate only because they’re nodes; there’s no direct Events↔Matrix link.

See Production Group Schema, Production Events Schema, Group v4 Target Design, and Matrix Integration Topology & Gaps for the detailed, field-level views behind each system in this diagram.