Requesting Additions or Changes
Have an idea for improving abe-kafka? We welcome feature requests and suggestions from our community! This guide will help you submit effective feature requests.
Before Submitting
Before submitting a feature request, please:
- Check existing requests: Search the GitHub Issues to see if someone has already suggested a similar feature.
- Read the documentation: Make sure the feature doesn't already exist or isn't already planned in our roadmap.
- Consider compatibility: Think about how your suggestion fits with the existing architecture and goals of the project.
How to Submit a Feature Request
Please submit feature requests through our GitHub Issues page using the "Feature Request" template.
What to Include
An effective feature request should include:
-
Clear and descriptive title: Summarize the proposed feature concisely.
-
Problem statement: Describe the problem that this feature would solve.
- What are you trying to accomplish?
- Why is it difficult or impossible with the current implementation?
- Who else might benefit from this feature?
-
Proposed solution: Describe your idea for implementing the feature.
- Be as specific as possible
- Include mockups or diagrams if applicable
- Consider edge cases and potential issues
-
Alternative solutions: Have you considered other ways to solve this problem?
-
Implementation considerations: If you have technical insights about how to implement the feature, please share them.
-
Impact and importance: Explain why this feature would be valuable to users and the project.
Example Feature Request
Title: Add WebSocket transport option for real-time updates
Problem Statement:
Currently, abe-kafka supports HTTP streaming and SSE for client communication.
However, for truly bidirectional real-time communication, these options have limitations.
Many modern web applications would benefit from WebSocket support for more efficient
real-time updates and lower latency.
Proposed Solution:
Add a new transport option "websocket" that implements the WebSocket protocol. This would:
- Allow bidirectional communication between client and server
- Reduce overhead compared to HTTP polling or SSE
- Enable real-time updates for task changes, comments, etc.
- Follow the same MCP message format as existing transports
The implementation should include:
1. New WebSocketTransport class implementing the Transport interface
2. Client-side connection handling and reconnection logic
3. Support for the same authentication mechanisms as existing transports
Alternative Solutions:
1. Enhance the SSE implementation with custom headers for upstream communication
2. Implement long-polling with improved efficiency
Implementation Considerations:
This would require adding a WebSocket library dependency (e.g., websockets for Python).
Care should be taken to ensure proper connection management and resource cleanup.
Impact and Importance:
This feature would greatly improve real-time applications built on abe-kafka,
reducing latency and improving the user experience for collaborative tools.
After Submitting
After you've submitted a feature request:
- Be responsive to questions about your proposal
- Be open to feedback and suggestions
- Consider contributing to the implementation if you have the skills
Thank you for helping improve abe-kafka!