diff --git a/docs/docs/flagsmith-concepts/platform-architecture.md b/docs/docs/flagsmith-concepts/platform-architecture.md index 89f54272b6f8..cf923b4d0326 100644 --- a/docs/docs/flagsmith-concepts/platform-architecture.md +++ b/docs/docs/flagsmith-concepts/platform-architecture.md @@ -18,6 +18,10 @@ The most important components in Flagsmith's architecture are: - **SDKs**: Client libraries (available for many languages and platforms) that connect your applications and services to Flagsmith, enabling real-time feature flag evaluation and remote configuration. - **Integrations**: Optional connectors to third-party tools and services (e.g., analytics, notifications, monitoring). These can be configured via the dashboard or API. - **Database**: Stores all persistent data, such as organisations, projects, features, and audit logs. Managed by Flagsmith in SaaS, but by your team in self-hosted/on-prem deployments. +- **Ingestion server**: A web service that receives events from SDKs (e.g. for [experimentation](/experimentation)) and writes them to Kafka. +- **Kafka**: Message bus used to reliably deliver events to the warehouse. +- **Warehouse delivery**: Inserts events into each environment's warehouse, retries failed inserts, and records delivery status. +- **Warehouse**: Analytical database that stores events and runs the aggregations the Core API requests. The architecture is REST-based, with both SDK clients and the dashboard interacting with the Core API. The platform is designed to be cloud-native, supporting containerisation and orchestration for scalability and reliability. @@ -36,6 +40,14 @@ Flagsmith can be deployed in three main ways, each with conceptual differences i *The diagram above shows the SaaS deployment model, where all infrastructure is managed by Flagsmith and the Edge API ensures global low-latency delivery.* +#### Experimentation on SaaS + +Flagsmith runs the whole experimentation pipeline. Events go to the Flagsmith-managed ClickHouse warehouse directly from Kafka, or to your own warehouse through warehouse delivery. + +![SaaS Experimentation Architecture](/img/experimentation-architecture-saas.svg) + +*The diagram above shows how experiment events flow on SaaS, to the managed warehouse or to your own.* + ### 2. Self-Hosted (Cloud or Private Cloud) - **Managed by your team**: Deploy Flagsmith on your own cloud infrastructure (e.g., AWS, GCP, Azure, DigitalOcean) using Docker, Kubernetes, or other orchestration tools. @@ -54,6 +66,14 @@ Flagsmith can be deployed in three main ways, each with conceptual differences i *The diagram above illustrates the Self-Hosted and On-Premises deployment models, where your team manages the infrastructure and has full control over security, compliance, and integrations.* +#### Experimentation on Self-Hosted and On-Premises + +Your team runs the ingestion server, Kafka and warehouse delivery alongside the Core API. Events go to your own warehouse through warehouse delivery. See [Connect a Warehouse](/experimentation/connect-a-warehouse) for supported warehouses. + +![Self-Hosted Experimentation Architecture](/img/experimentation-architecture-self-hosted.svg) + +*The diagram above shows how experiment events flow on Self-Hosted and On-Premises deployments, where every component, including the warehouse, is run by your team.* + ## What's next - [Deployment Options](/deployment-self-hosting) - [Version Comparison](https://flagsmith.com/pricing) diff --git a/docs/static/img/experimentation-architecture-saas.svg b/docs/static/img/experimentation-architecture-saas.svg new file mode 100644 index 000000000000..8cb4748257f1 --- /dev/null +++ b/docs/static/img/experimentation-architecture-saas.svg @@ -0,0 +1,78 @@ + + + + + + + + + + + + + Event pipeline, run by Flagsmith + + + + Your application + Flagsmith SDK + + + Ingestion server + validates events + + + Kafka + buffers events + + + Warehouse delivery + inserts and retries + + + + Managed warehouse + Flagsmith-run ClickHouse + + + Your warehouse + e.g. your own ClickHouse + + + + Postgres + Flagsmith database + + + Dashboard + + + Core API + + + + + + + + + + + + + + + + + + events + insert + reads Kafka directly + environment-key + lookup + warehouse connections, + delivery status + experiment results queries + + + diff --git a/docs/static/img/experimentation-architecture-self-hosted.svg b/docs/static/img/experimentation-architecture-self-hosted.svg new file mode 100644 index 000000000000..add5eb462913 --- /dev/null +++ b/docs/static/img/experimentation-architecture-self-hosted.svg @@ -0,0 +1,68 @@ + + + + + + + + + + + + Event pipeline, run by your team + + + + Your application + Flagsmith SDK + + + Ingestion server + validates events + + + Kafka + buffers events + + + Warehouse delivery + inserts and retries + + + Your warehouse + connected per environment + + + + Postgres + Flagsmith database + + + Dashboard + + + Core API + + + + + + + + + + + + + + + + events + insert + environment-key + lookup + warehouse connections, + delivery status + experiment results queries + +