This is an automated email from the ASF dual-hosted git repository. hubcio pushed a commit to branch docs/align-with-topic-durability in repository https://gitbox.apache.org/repos/asf/iggy-website.git
commit 934515fc37067a493c50d779d2c3011fd9f1e717 Author: hubcio <[email protected]> AuthorDate: Sat Sep 12 02:37:25 2026 +0200 fix(docs): align landing-page capabilities Correct replay limits, connector counts, UI features and telemetry. Describe the memory budget, Linux I/O and optional affinity in the rendered overview while retaining recorded benchmark blockers. --- content/docs/index.mdx | 16 ++++++++-------- src/components/architecture-diagrams.tsx | 14 +++++++------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/content/docs/index.mdx b/content/docs/index.mdx index c75dcc98..5f1bae66 100644 --- a/content/docs/index.mdx +++ b/content/docs/index.mdx @@ -15,7 +15,7 @@ Iggy uses a hierarchical model: **streams** contain **topics**, topics contain * ## The append-only log -Every partition is an append-only log. Messages are **immutable** once written, consumers can read from any offset, and you can replay the entire history at any time. +Every partition is an append-only log. Messages are **immutable** once written, consumers can start from a chosen offset, and retained messages can be replayed. Retention removes old data, and offsets can contain gaps. <AppendOnlyLogViz /> @@ -24,21 +24,21 @@ Every partition is an append-only log. Messages are **immutable** once written, | Capability | Details | |-----------|---------| | **Transport** | TCP, QUIC, WebSocket (custom binary protocol), HTTP (REST) | -| **Performance** | Thread-per-core + io_uring, zero-copy deserialization, custom 4 GiB memory pool | -| **Security** | TLS on all transports, Argon2id hashing, AES-256-GCM encryption, [granular RBAC](/docs/server/security) with per-stream/per-topic permissions | -| **Connectors** | [14 sink and 4 source plugins](/docs/connectors/introduction) including PostgreSQL, MongoDB, Elasticsearch, ClickHouse, Apache Iceberg, S3, with data transforms | +| **Performance** | Thread-per-core + io_uring on Linux, binary message views, configurable memory pool with a default 4 GiB budget | +| **Security** | TLS on all transports, Argon2id hashing, AES-256-GCM message encryption, [granular permissions](/docs/server/security) with per-stream/per-topic permissions | +| **Connectors** | [16 sink and 4 source plugins](/docs/connectors/introduction) including PostgreSQL, MongoDB, Elasticsearch, ClickHouse, Apache Iceberg, S3, with data transforms | | **AI Integration** | [MCP server](/docs/ai/mcp) with 40+ tools for LLM-driven message streaming management | -| **Management** | [Web UI](/docs/web_ui/start) dashboard (embedded or standalone), [CLI](/docs/cli/start) with shell completions, Prometheus metrics, OpenTelemetry | +| **Management** | [Web UI](/docs/web_ui/start) dashboard (embedded or standalone), [CLI](/docs/cli/start) with shell completions, Prometheus metrics; connector OpenTelemetry export ([broker export limits](/docs/server/configuration#telemetry)) | | **Clustering** | Built on [Viewstamped Replication (VSR)](/docs/clustering/vsr) consensus; single node by default, multi-node via `[cluster]` configuration | -| **Deployment** | Single binary, [Docker & Helm](/docs/server/docker), NUMA-aware CPU affinity | +| **Deployment** | Single server process, [Docker & Helm](/docs/server/docker), configurable CPU/NUMA affinity on Linux | ## Ecosystem Iggy is more than just a server. The project includes a full ecosystem of tools: -- **[Connectors Runtime](/docs/connectors/introduction)** - dynamically loaded Rust plugins for data integration: 14 sinks and 4 sources. Ingest from PostgreSQL, Elasticsearch or InfluxDB into Iggy, or forward to MongoDB, Elasticsearch, ClickHouse, Apache Iceberg, Quickwit, S3 and more. Built-in data transforms and Prometheus metrics. +- **[Connectors Runtime](/docs/connectors/introduction)** - dynamically loaded Rust plugins for data integration: 16 sinks and 4 sources. Ingest from PostgreSQL, Elasticsearch or InfluxDB into Iggy, or forward to MongoDB, Elasticsearch, ClickHouse, Apache Iceberg, Quickwit, S3 and more. Built-in data transforms and Prometheus metrics. - **[MCP Server](/docs/ai/mcp)** - Model Context Protocol server exposing 40+ tools for LLM integration. Works with Claude Desktop via stdio and HTTP transports. -- **[Web UI](/docs/web_ui/start)** - SvelteKit dashboard for stream/topic management, message browsing with JSON/string/XML decoders, user management, and real-time terminal. +- **[Web UI](/docs/web_ui/start)** - SvelteKit dashboard for stream/topic management, message browsing with JSON/string/XML decoders, and user management. - **[CLI](/docs/cli/start)** - full-featured command-line interface with named connection contexts, session-based login, and shell completions. - **[SDKs](/docs/sdk/introduction)** - client libraries for 8 languages (Rust, Python, Java, Go, Node.js, C#, C++, PHP), most with runnable examples. - **[Benchmarking](/docs/server/benchmarking)** - built-in `iggy-bench` tool with a Yew/WebAssembly dashboard for performance testing. diff --git a/src/components/architecture-diagrams.tsx b/src/components/architecture-diagrams.tsx index 956e3526..58b7484a 100644 --- a/src/components/architecture-diagrams.tsx +++ b/src/components/architecture-diagrams.tsx @@ -1014,13 +1014,13 @@ export function WhyIggy() { { label: "I/O model", traditional: "epoll + blocking thread pool for disk", - iggy: "io_uring completion-based, kernel does the I/O", + iggy: "io_uring completion-based I/O on Linux", iggyColor: "#f59e0b", }, { label: "Threading", traditional: "Work-stealing across shared threads", - iggy: "Thread-per-core, CPU-pinned, NUMA-aware", + iggy: "Thread-per-core, configurable CPU/NUMA affinity", iggyColor: "#3b82f6", }, { @@ -1032,13 +1032,13 @@ export function WhyIggy() { { label: "Memory", traditional: "Heap allocations on hot path", - iggy: "Pre-allocated 4 GiB pool, 28 bucket sizes (4 KiB to 512 MiB)", + iggy: "4 GiB pool budget, on-demand buffers, 28 sizes (4 KiB to 512 MiB)", iggyColor: "#ec4899", }, { label: "Binary", traditional: "JVM + Zookeeper / KRaft + dependencies", - iggy: "Single ~20 MB binary, no dependencies", + iggy: "Single ~20 MB binary with native OS libraries", iggyColor: "#14b8a6", }, ]; @@ -1110,7 +1110,7 @@ export function DocsHero() { const stats = [ { stat: "Sub-ms latency", accent: "Tail latency under 1ms at P99" }, { stat: "Millions msgs/sec", accent: "Multi GB/s throughput on a single node" }, - { stat: "Zero-copy I/O", accent: "io_uring + vectored writes to disk" }, + { stat: "Batched disk I/O", accent: "io_uring + vectored writes on Linux" }, ]; const sources = [ @@ -1129,7 +1129,7 @@ export function DocsHero() { const links = [ { title: "Getting Started", href: "/docs/introduction/getting-started", desc: "Install, configure, send your first messages", icon: "M13 10V3L4 14h7v7l9-11h-7z" }, - { title: "Architecture", href: "/docs/introduction/architecture", desc: "Thread-per-core, io_uring, shared-nothing design", icon: "M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zm0 8a1 1 0 011-1h6a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1v-2zm10 0a1 1 0 011-1h4a1 1 0 011 1v2a1 1 0 01-1 1h-4a1 1 0 01-1-1v-2z" }, + { title: "Architecture", href: "/docs/introduction/architecture", desc: "Thread-per-core, io_uring, partition ownership", icon: "M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zm0 8a1 1 0 011-1h6a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1v-2zm10 0a1 1 0 011-1h4a1 1 0 011 1v2a1 1 0 01-1 1h-4a1 1 0 01-1-1v-2z" }, { title: "Connectors", href: "/docs/connectors/introduction", desc: "Source & sink plugins for data integration", icon: "M8 7h12m0 0l-4-4m4 4l-4 4m0 6H4m0 0l4 4m-4-4l4-4" }, { title: "SDKs", href: "/docs/sdk/introduction", desc: "Rust, Python, Java, Go, Node.js, C#, C++, PHP", icon: "M10 20l4-16m4 4l4 4-4 4M6 16l-4-4 4-4" }, { title: "Server Config", href: "/docs/server/configuration", desc: "Tune performance, storage, and security", icon: "M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.066 2.573c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.573 1.066c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.066-2.573c-1.75 [...] @@ -1250,7 +1250,7 @@ export function DocsHero() { { label: "MCP Server", href: "/docs/ai/mcp", sub: "40+ LLM tools" }, { label: "Web UI", href: "/docs/web_ui/start", sub: "Dashboard" }, { label: "CLI", href: "/docs/cli/start", sub: "Terminal" }, - { label: "8 SDKs", href: "/docs/sdk/introduction", sub: "All languages" }, + { label: "8 SDKs", href: "/docs/sdk/introduction", sub: "Client libraries" }, ].map((t) => ( <a key={t.label} href={t.href} className="text-center no-underline group"> <span className="text-[10px] font-semibold text-fd-foreground group-hover:text-fd-primary transition-colors block">{t.label}</span>
