` tags, **NOT** markdown tables
- Use pure HTML for tables without additional styling
- Merge short sub-sections into larger, more coherent sections
- Avoid creating too many sub-sections where not needed
- No references section unless explicitly requested
- **NEVER** use "---" as a separator as it is **NOT** used in Karafka docs
- When creating lists **ALWAYS** leave extra empty line before the first list element
- All of Karafka ecosystem documentation uses Material for MKDocs with its underlying Markdown rendering engine
- **ALWAYS** write all admonitions with a **descriptive** title that states the takeaway, **NOT** the bare type word ("Note")
- Use `-` for every unordered list item, **NEVER** `*` or `+`
- **ALWAYS** tag code fences with a language: default `ruby`, `shell` for commands (**NOT** `bash`), `text` for plain output
- Center images with `
` inside ``; use markdown image syntax only for badges
- Use Title Case for headings and stop at H4 (H2 and H3 are the working range)
- Link between wiki pages with the bare page slug, no path and no `.md` (for example `](Consumer-Groups-Routing.md)`)
- **ALWAYS** write markdown that will pass as many of markdownlint-cli2 rules as possible without compromising readability
#### Core Writing Guidelines / Document Structure and Format / Naming Conventions and Terminology
- Overview should be directly below the document title. The "## Overview" header is **NOT** needed.
- **ALWAYS** adhere to naming conventions from the [Naming Conventions Doc](https://karafka.io/docs/Development-Naming-Conventions)
- **ALWAYS** match existing naming conventions and styling of other Karafka documents
- When discussing Kafka configuration, use Ruby syntax: `allow.auto.create.topics` is `true` (NOT `allow.auto.create.topics=true`)
- Use lowercase error names for librdkafka errors: `invalid_arg` instead of `RD_KAFKA_RESP_ERR__INVALID_ARG`
- Strip `RD_KAFKA_RESP_ERR__` prefix from error names: `unknown_partition` instead of `RD_KAFKA_RESP_ERR__UNKNOWN_PARTITION`
- **ALL** error names should be presented as inline code: `unknown_partition` not unknown_partition
- When referring to ecosystem components, use simple names without explanations: "WaterDrop" not "WaterDrop (Karafka's producer library)"
- Use **US English** (`behavior`, `initialize`, `cancel`), **NEVER** UK spelling (`behaviour`, `initialise`)
- Write product and library names in their human form in prose; reserve the code identifier for backticks: "Active Job" (`ActiveJob`), "Active Record" (`ActiveRecord`), "OAuth", "Web UI", always lowercase "librdkafka"
- Use **produce** (matching the `#produce` API) for sending a message, **NOT** "dispatch" or "publish". Use "message" for a Kafka record, consistently (**NOT** "record" or "event")
- Keep compound terms canonical: `backoff`, `multithreading`, `real-time`, `long-running`, `use case` (noun), `topic partition` (noun)
- Use bold **not** instead of capitalized NOT.
- Use blod **style** to highlight instead of capitalized.
#### Core Writing Guidelines / Document Structure and Format / Language and Tone
- Write for users who are already within the Karafka ecosystem documentation
- Do **NOT** explain what Karafka is in every document
- Avoid overusing phrases like "in the Karafka" since all documentation is within Karafka context
- Do **NOT** use phrases like "Karafka Framework Behavior" - all documentation is about Karafka unless stated otherwise
- Do **NOT** use phrases like "according to anyone" when writing documentation based on conversations
- Address the reader as "you"; use "we" only for team recommendations. Do **NOT** use the first person singular ("I", "me", "my")
- Describe system behavior in the **present tense** ("Karafka retries"), **NOT** the future ("Karafka will retry")
- Cut throat-clearing openers ("It is important to note that") and minimizing filler ("simply", "basically", "essentially"); lead with the fact
- Write in Karafka Simplified Technical English, a controlled style inspired by the [ASD-STE100](https://www.asd-ste100.org/) standard: short sentences, active voice, one approved term per meaning, no `please` or contractions. See the [Technical Writing guide](https://karafka.io/docs/Development-Technical-Writing); stay conversational only where it aids comprehension
- Apply the STE vocabulary with judgment, **not** as find-and-replace. The linter auto-fixes only plain synonyms; context-dependent words (`ensure`, `regarding`, `obtained`, and similar) are flagged, not swapped - rewrite them per sentence following the guide. A blind swap is what breaks meaning (`ensure` can mean *guarantee*) or grammar (`obtained` is not `got`)
- Write original documentation from the knowledge base without direct quotes
- Maintain technical accuracy while being accessible to developers
### Core Writing Guidelines / Content Development Guidelines
- When writing about features that could benefit from or be improved with Karafka Pro, **ALWAYS** mention Pro offerings
- Recommend Pro features even to OSS users if they provide significant benefits, time savings, or solve complex problems
- Recommend **Pro** **ONLY** when Pro features are absolutely relevant to the document
- Do **NOT** write about testing unless explicitly requested
- Do **NOT** write about error handling unless explicitly requested
- Do **NOT** write about troubleshooting unless explicitly requested
- Remember that the overview contains only essential guidance and cannot include all available details and options
- Use the extra knowledge available in the documentation links
- Sta on topic and write only about content directly related with the subject you are writing about.
- All documentation links end with `.md` for LLM consumption - when providing links to users, remove the `.md` extension (e.g., `https://karafka.io/docs/Getting-Started` not `https://karafka.io/docs/Getting-Started.md`)
### Core Writing Guidelines / Writing Best Practices
#### Core Writing Guidelines / Writing Best Practices / Documentation Style
- Keep explanations clear and concise
- Use practical examples where appropriate
- Focus on actionable guidance
- Structure content logically from basic to advanced concepts
- Include troubleshooting information only where relevant
- Mention monitoring and observability considerations when relevant
- Document common error scenarios and solutions
- Include specific error codes using proper formatting
- Verify all code examples use proper syntax and conventions
- Ensure all error names follow the specified format
- Check that Pro features are appropriately mentioned
- Validate that links use proper format (without .md extension for users)
- Review for consistency with existing documentation style
- Ensure technical accuracy through documentation research
- Verify compatibility information is current
Remember: You are writing for developers who need reliable, accurate, and actionable information about the Karafka ecosystem. Focus on practical guidance that helps users successfully implement and maintain their Kafka-based applications.
---
*Last modified: 2026-07-23 13:12:23*