Add Observability Stack and Comprehensive Documentation#6
Merged
Conversation
- Add Prometheus service with Iggy metrics scraping (15s interval) - Add Grafana service with auto-provisioned datasource and dashboard - Configure Iggy server to expose /metrics endpoint - Create pre-built Iggy Overview dashboard with: - Server status indicator - HTTP request rate graph - Message throughput visualization - Request latency percentiles (p50, p95) - Active streams counter - Add shared Docker network for service discovery - Update CLAUDE.md with observability documentation Access points: - Iggy HTTP: localhost:3000 - Prometheus: localhost:9090 - Grafana: localhost:3001 (admin/admin)
- Add apache/iggy-web-ui service on port 3050 - Configure Web UI to connect to Iggy HTTP API - Update documentation with Web UI access and features Web UI provides: - Streams and topics management - Message browsing and inspection - User management - Server health monitoring Access: http://localhost:3050 (iggy/iggy)
- Add comprehensive guide covering: - Streams, topics, and partitions explained - Partition keys and ordering guarantees - Consumer groups and scaling patterns - Message retention and expiry configuration - Error handling strategies (at-least-once, DLQ, idempotency) - Production patterns (outbox, saga, versioning) - Complete code examples for producers and consumers - CLI and HTTP API quick reference - Update README with: - Observability stack documentation (Grafana, Prometheus, Web UI) - Service access URLs and credentials - Architecture diagram with observability layer - Prometheus metrics and OpenTelemetry configuration - Link to new guide in documentation section
- Add comprehensive partitioning-guide.md covering: - What partitions are and why they exist - The ordering problem and partition key solutions - Domain-specific partition key examples - Common partitioning mistakes and how to avoid them - Partition count guidelines and capacity planning - Consumer group rebalancing mechanics - Real-world scenario walkthroughs - Troubleshooting guide - Enhance docs/guide.md with educational details: - Add detailed Database struct explanation with SQL examples - Add database schema for idempotency pattern - Expand Outbox pattern with problem statement and solution - Add outbox table schema and publisher query examples - Add Further Reading references to external resources
Add comprehensive Iggy-specific content to the partitioning guide: - Iggy Partitioning Strategies section: - Balanced (round-robin) strategy - Partition ID (direct assignment) strategy - Messages Key (hash-based) strategy with MurmurHash3 explanation - Comparison table and use case guidance - Iggy Partition Storage Architecture section: - Physical storage layout (streams/topics/partitions/segments) - Segment structure and benefits - Offset and time indexes explained - Index caching modes - Iggy Server Configuration section: - Partition settings (fsync, checksum, buffer thresholds) - Segment settings (size, expiry, caching, archival) - Topic settings (max_size, auto-delete) - Message deduplication options - Configuration trade-offs table - Custom Partitioners section: - Partitioner trait explanation - Example: Weighted partitioner for heterogeneous hardware - Example: Time-based partitioner for analytics - Example: Content-based priority partitioner - Integration with IggyClient - Enhanced Further Reading section: - Apache Iggy official resources - Distributed systems fundamentals - Related technologies (Kafka, MurmurHash, Cassandra) - Benchmarking resources
- Add comprehensive durable storage guide covering: - Storage architecture (append-only log, segments) - Durability configuration (fsync settings, trade-offs) - Data retention policies (time-based, size-based) - Backup and archiving (disk, S3-compatible storage) - Recovery procedures and data integrity - Performance vs durability trade-offs - Production recommendations with config templates - Add docs/README.md as documentation index with: - Quick navigation by topic - Links to all available guides - External resources and references - Update README.md and CLAUDE.md to reference docs/ directory
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a complete Grafana-based observability stack for monitoring Iggy and comprehensive documentation guides for event-driven architecture, partitioning, and durable storage.
Type of Change
Changes Made
Observability Stack
/metricsdocker-compose.yamlwith full stack configurationDocumentation
Housekeeping
.claude/settings.local.jsonto.gitignoreCargo.lockTesting
Test commands run:
Checklist
Code Quality
cargo fmt)cargo clippy -- -D warnings)Testing
Documentation
Security
Related Issues
None
Screenshots (if applicable)
N/A - Infrastructure and documentation changes only
Additional Notes
Quick Start
Files Changed