This is an automated email from the ASF dual-hosted git repository.
maciej pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/iggy-website.git
The following commit(s) were added to refs/heads/main by this push:
new af271802 Update iggy repo links and server config toml
af271802 is described below
commit af271802b1ba3eaca0e4081a7a7513705903ade6
Author: Maciej Modzelewski <[email protected]>
AuthorDate: Mon Feb 16 13:06:25 2026 +0100
Update iggy repo links and server config toml
closes #35
---
content/docs/introduction/getting-started.mdx | 2 +-
content/docs/server/configuration.mdx | 95 ++++++++++++++-------------
2 files changed, 50 insertions(+), 47 deletions(-)
diff --git a/content/docs/introduction/getting-started.mdx
b/content/docs/introduction/getting-started.mdx
index 0988bed2..ff651141 100644
--- a/content/docs/introduction/getting-started.mdx
+++ b/content/docs/introduction/getting-started.mdx
@@ -12,7 +12,7 @@ Once you're familiar with the
[architecture](/docs/introduction/architecture), i
In the typical scenario, e.g. when working with the microservices architecture
or any other kind of the distributed system, each application can be both at
the same time (producer and consumer), as the particular service might publish
its own messages (typically in a form of the events - facts, that have already
happened) while at the same time be interested in the notifications coming from
the other service(s).
-The completed sample can be found in
[repository](https://github.com/apache/iggy/tree/master/core/examples/src/getting-started),
however, we will go through the implementation step by step, so that you can
get a better understanding of how to build the applications from scratch.
+The completed sample can be found in
[repository](https://github.com/apache/iggy/tree/master/examples/rust/src/getting-started),
however, we will go through the implementation step by step, so that you can
get a better understanding of how to build the applications from scratch.
Also, please do keep in mind that we'll be using the default implementation of
`IggyClient` which provides a wrapper on top of the low-level,
transport-specific `Client` trait (which you can always use, if you want to
have more control over the communication with the server).
diff --git a/content/docs/server/configuration.mdx
b/content/docs/server/configuration.mdx
index 2cd5601b..9d66a180 100644
--- a/content/docs/server/configuration.mdx
+++ b/content/docs/server/configuration.mdx
@@ -8,9 +8,16 @@ If no configuration file is found, the server uses its
built-in defaults.
Let's take a look at the available configuration options. The following
example shows all settings with their default values:
-**Note:** For the most up-to-date configuration reference, please refer to the
[server.toml](https://github.com/apache/iggy/blob/master/core/configs/server.toml)
file in the project's repository.
+**Note:** For the most up-to-date configuration reference, please refer to the
[config.toml](https://github.com/apache/iggy/blob/master/core/server/config.toml)
file in the project's repository.
```toml
+# Configuration for consumer group cooperative partition rebalancing.
+[consumer_group]
+# Maximum time a partition can remain in pending revocation before being
force-transferred to the target member.
+rebalancing_timeout = "30s"
+# How often the periodic checker scans for timed-out pending revocations.
+rebalancing_check_interval = "5s"
+
[data_maintenance.messages]
# Enables or disables the expired message cleaner process.
cleaner_enabled = false
@@ -359,10 +366,24 @@ level = "info"
# When enabled, logs are stored in {system.path}/{system.logging.path}
(default: local_data/logs).
file_enabled = true
-# Maximum size of the log files before rotation.
-max_size = "512 MB"
+# Maximum size of a single log file before rotation occurs. When a log
+# file reaches this size, it will be rotated (closed and a new file
+# created). This setting works together with max_total_size to control
+# log storage. You can set it to 0 to enable unlimited size of single
+# log, but all logs will be written to a single file, thus disabling
+# log rotation. Please configure 0 with caution, esp. RUST_LOG > debug
+max_file_size = "500 MB"
+
+# Maximum total size of all log files. When this size is reached,
+# the oldest log files will be deleted first. Set it to 0 to allow
+# an unlimited number of archived logs. This does not disable time
+# based log rotation or per-log-file size limits.
+max_total_size = "4 GB"
+
+# Time interval for checking log rotation status. Avoid less than 1s.
+rotation_check_interval = "1 h"
-# Time to retain log files before deletion.
+# Time to retain log files before deletion. Avoid less than 1s, too.
retention = "7 days"
# Interval for printing system information to the log.
@@ -397,25 +418,28 @@ default_algorithm = "none"
# Specifies the directory where stream data is stored, relative to
`system.path`.
path = "streams"
-# Topic configuration
+# Topic configuration - default settings for new topics
[system.topic]
-# Path for storing topic-related data (string).
-# Specifies the directory where topic data is stored, relative to
`stream.path`.
+# Path for storing topic-related data, relative to `stream.path`.
path = "topics"
-# Configures the topic size-based expiry setting.
-# "unlimited" or "0" means topics are kept indefinitely.
-# A size value in human-readable format determines the maximum size of a topic.
-# When a topic reaches this size, the oldest messages are deleted to make room
for new ones.
-# Messages are removed in full segments, so if segment size is 1 GiB and the
topic size is 10 GiB,
-# the oldest segment will be deleted upon reaching 10 GiB.
-# Example: `max_topic_size = "10 GiB"` means oldest messages in topics will be
deleted when they reach 10 GiB.
-# Note: this setting can be overwritten with CreateTopic and UpdateTopic
requests.
+# Messages can be deleted based on two independent policies:
+# 1. Size-based: delete oldest segments when topic exceeds max_size
+# 2. Time-based: delete segments older than message_expiry
+# Both can be active simultaneously. Per-topic overrides via
CreateTopic/UpdateTopic.
+
+# Maximum topic size before oldest segments are deleted.
+# "unlimited" or "0" = no size limit (messages kept indefinitely).
+# When 90% of this limit is reached, oldest segments are removed to make room.
+# Applies to sealed segments only (active segment is protected).
+# Example: "10 GiB"
max_size = "unlimited"
-# Configures whether the oldest segments are deleted when a topic reaches its
maximum size (boolean).
-# Note: segments are removed in intervals defined by
`system.message_cleaner.interval`.
-delete_oldest_segments = false
+# Maximum age of messages before segments are deleted.
+# "none" = no time limit (messages kept indefinitely).
+# Applies to sealed segments only (active segment is protected).
+# Example: "7 days", "2 days 4 hours 15 minutes"
+message_expiry = "none"
# Partition configuration
[system.partition]
@@ -433,23 +457,15 @@ enforce_fsync = false
# `false` skips these checks for faster loading at the risk of undetected
corruption.
validate_checksum = false
-# The count threshold of buffered messages before triggering a save to disk
(integer).
-# Specifies how many messages accumulate before persisting to storage.
-# Adjusting this can balance between write performance and data durability.
-# This is soft limit, actual number of messages may be higher, depending on
last batch size.
-# Together with `size_of_messages_required_to_save` it defines the threshold
of buffered messages.
-# Minimum value is 32. Value has to be a multiple of 32 due to minimum
-# direct I/O block size (512 bytes) and message index size (16 bytes per
message).
-# With direct I/O, writes must occur in blocks of at least 512 bytes, which
equals 32 message indices.
+# The count threshold of buffered messages before triggering a save to disk.
+# Together with `size_of_messages_required_to_save` it defines the threshold.
+# This is a soft limit - actual count may be higher depending on last batch
size.
+# Minimum value is 1.
messages_required_to_save = 1024
-# The size threshold of buffered messages before triggering a save to disk
(string).
-# Specifies how much size of messages accumulate before persisting to storage.
-# Adjusting this can balance between write performance and data durability.
-# This is soft limit, actual number of messages may be higher, depending on
last batch size.
-# Together with `messages_required_to_save` it defines the threshold of
buffered messages.
-# Minimum value is 512 B. Value has to be a multiple of 512 B due to direct
I/O requirements.
-# Direct I/O operations must align with the underlying storage block size
(typically 512 B or 4 KiB).
+# The size threshold of buffered messages before triggering a save to disk.
+# Together with `messages_required_to_save` it defines the threshold.
+# This is a soft limit - actual size may be higher depending on last batch
size.
size_of_messages_required_to_save = "1 MiB"
# Segment configuration
@@ -460,19 +476,6 @@ size_of_messages_required_to_save = "1 MiB"
# Maximum size is 1 GiB. Size has to be a multiple of 512 B.
size = "1 GiB"
-# Configures the message time-based expiry setting.
-# "none" means messages are kept indefinitely.
-# A time value in human-readable format determines the lifespan of messages.
-# Example: `message_expiry = "2 days 4 hours 15 minutes"` means messages will
expire after that duration.
-message_expiry = "none"
-
-# Defines the file system confirmation behavior during state updates.
-# Controls how the system waits for file write operations to complete.
-# Possible values:
-# - "wait": waits for the file operation to complete before proceeding.
-# - "no_wait": proceeds without waiting for the file operation to finish,
potentially increasing performance but at the cost of durability.
-server_confirmation = "wait"
-
# Configures whether expired segments are archived (boolean) or just deleted
without archiving.
archive_expired = false