The documentation repository for the Karafka ecosystem - a Ruby and Rails efficient Kafka processing framework.
This repository contains all the documentation for Karafka and its related components, organized as a collection of Markdown files that are automatically processed and deployed
This repository includes several automated processes to keep documentation current and consistent:
The repository automatically fetches and updates dynamic content twice daily (6:00 AM and 6:00 PM UTC) and on-demand through repository dispatch events:
- Component Changelogs: Automatically pulls the latest CHANGELOG.md files from all Karafka ecosystem repositories
- librdkafka Releases: Fetches and formats librdkafka release information from GitHub
- Error Documentation: Generates comprehensive librdkafka error reference documentation
Located in the bin/
directory:
refresh_changelogs
- Downloads changelogs from component repositoriesrefresh_librdkafka_errors
- Generates librdkafka error documentation dynamically using the rdkafka gemrefresh_librdkafka_releases
- Generates librdkafka releases documentation dynamically based on the official releasesrefresh_librdkafka_statistics
- Generates librdkafka statistics documentation based on the official docsrefresh_librdkafka_configuration
- Generates librdkafka configuration documentation based on the official docsalign_structure
- Flattens nested documentation structure and fixes cross-references for MkDocs compatibilitymklint
- Validates documentation structure, references, and builds using MkDocs in strict modesync_gh
- Synchronizes content with GitHub Karafka main repo
The CI pipeline ensures documentation quality through:
- Markdown Linting: Uses
markdownlint-cli2
to enforce consistent Markdown formatting - Structure Validation: Validates cross-references, anchor links, and overall documentation structure
- Security: Verifies all GitHub Actions use SHA-pinned versions for security
When automatic content updates are available, the system:
- Fetches the latest content from all sources
- Regenerates dynamic documentation
- Creates a pull request with the changes
- Maintains a clean commit history with automated updates
Several files in this repository are automatically generated and should not be edited manually:
Changelog/*.md
- Component changelogsLibrdkafka/Changelog.md
- librdkafka release notesLibrdkafka/Errors.md
- librdkafka error reference
These files include header comments indicating their auto-generated status:
[//]: # (This file is auto-generated by bin/refresh_remote_content)
[//]: # (Do not edit manually - changes will be overwritten)
See LICENSE for details.