Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: add message brokers section PEM-6141 #4818

Merged
merged 5 commits into from
Nov 28, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions docs/docs-content/architecture/architecture-overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -87,3 +87,30 @@ be optionally downloaded from a self-hosted private repository instead of pullin
repository.

![Self-hosted Palette architecture diagram](/architecture_architecture-on-prem-detailed.webp)

### Message Brokers

Palette requires reliable, scalable, and secure communication. The internal microservices use a Publish-Subscribe
pattern implemented with [gRPC](https://grpc.io/) to achieve this. In order to support this communication pattern, a
message broker service acts as the central hub for message exchange. Palette message brokers are automatically scaled,
ensuring that a quorum is available for each management plane cluster. The broker system is designed to provide the
following functionality.

1. It efficiently distributes incoming gRPC requests across multiple replicas of the message broker to optimize resource
usage and platform performance. This capability supports Palette's ability to manage large enterprise Kubernetes
clusters, which are often distributed across numerous Kubernetes clusters.
2. It provides high availability by enabling clients to fail over to alternative replicas in the case of a pod failure.
By default, two replicas of the message broker are created in each management plane cluster.
3. It automatically adjusts to changes in the number of broker replicas without manual reconfiguration, ensuring that
the platform dynamically scales in response to load changes.
4. It enforces message authentication and security by generating secondary certificates used for broker to broker
communication. This provides security in depth.

Any Enterprise and VerteX Palette cluster will have a message broker that you can inspect. First, ensure that you can
connect to the management plane cluster. Refer to the
[Access Cluster with CLI](../clusters/cluster-management/palette-webctl.md#access-cluster-with-cli) guide for further
information. You can then view your message broker by executing the following command.

```bash
kubectl get statefulset msgbroker --namespace hubble-system
```