mattermost-community-enterp.../platform/services/remotecluster/README.md
Claude ec1f89217a Merge: Complete Mattermost Server with Community Enterprise
Full Mattermost server source with integrated Community Enterprise features.
Includes vendor directory for offline/air-gapped builds.

Structure:
- enterprise-impl/: Enterprise feature implementations
- enterprise-community/: Init files that register implementations
- enterprise/: Bridge imports (community_imports.go)
- vendor/: All dependencies for offline builds

Build (online):
  go build ./cmd/mattermost

Build (offline/air-gapped):
  go build -mod=vendor ./cmd/mattermost

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-17 23:59:07 +09:00

1.6 KiB

Remote Cluster Service

Package remotecluster implements Mattermost's "Secured Connections" feature, which enables communication between different Mattermost clusters. Specifically, this package provides:

Service Management:

  • Manages inter-cluster communication via topic-based messages
  • Handles connection state (active/inactive) based on cluster leadership
  • Maintains concurrent send channels (MaxConcurrentSends = 10) for parallel message processing
  • Implements periodic health checks (pings) to monitor remote cluster connectivity

Message Handling:

  • Sends messages using a pool of goroutines to handle concurrent sends while preserving message order per remote
  • Uses hash-based routing to ensure messages for the same remote ID go to the same channel
  • Supports different types of sends: messages, files, and profile images
  • Implements topic-based message routing with listener callbacks

Connection Management:

  • Handles invitation confirmations between clusters
  • Maintains HTTP client connections with proper timeouts and transport settings
  • Supports connection state listeners for monitoring remote cluster availability
  • Implements ping mechanism to verify remote cluster health

Core Features:

  • Topic-based message routing
  • File transfer capabilities
  • Profile image synchronization
  • Invitation system for establishing connections
  • Health monitoring via pings
  • Concurrent message processing
  • Connection state management

This package is designed to be thread-safe and handles leadership changes in clustered environments, only running active operations on the leader node.