Customers on a paid plan can enable direct access via Proxy.
Creating Kafka Users
You can create and manage Kafka users through the Streamkap web interface at Kafka Access. To create a new Kafka user, click the “Create User” button. This will open the user creation dialog where you can configure the user’s permissions and access settings.For detailed step-by-step instructions on creating and managing Kafka users through the UI, see the Kafka Access documentation.
User Configuration
When creating a Kafka user, you’ll need to configure:- Username: Enter a lowercase username for the Kafka user
- Password: Set a secure password for authentication
- Safe listed IPs: Specify IP addresses or CIDR ranges that are allowed to connect
- Kafka ACLs: Configure access control lists to define what the user can do
Access Control Lists (ACLs)
Kafka ACLs control what operations users can perform on specific resources. When creating a user, you can configure:-
Resource Type:
TOPIC- Controls access to Kafka topicsGROUP- Controls access to consumer groups
-
Operation: The type of operation allowed (varies by resource type)
ForTOPICresources:ALL- All operationsWRITE- Write/produce messagesREAD- Read/consume messagesALTER- Modify resource configurationsALTER_CONFIGS- Modify resource configurationsCREATE- Create new resourcesDELETE- Delete resourcesDESCRIBE- View resource metadataDESCRIBE_CONFIGS- View resource configurations
GROUPresources (consumers only):READ- Join and consume from consumer groupDELETE- Delete consumer groupDESCRIBE- View consumer group metadata
-
Pattern Type: How the resource name is matched
LITERAL- Exact match of the resource namePREFIXED- Match resources with the specified prefix
- Name: The specific resource name or prefix to apply the ACL to
Connection Details
Once a user is created, your endpoints are shown under “Proxy Endpoints”. These endpoints follow the naming pattern:<service-name>-<kafka-username>.streamkap.net:PORT
Where:
<service-name>- Your Streamkap service/tenant name<kafka-username>- The Kafka user’s usernamePORT- One of the available ports: 32400, 32401, or 32402
my-service-kafka-user.streamkap.net:32400my-service-kafka-user.streamkap.net:32401my-service-kafka-user.streamkap.net:32402
- Security protocol:
SASL_SSL(recommended for secure connections) - SASL mechanism:
PLAIN - Username/password: As configured for the user
Required Permissions
To read from Kafka topics, your user needs these ACL permissions: Essential permissions (always required):- Resource Type:
TOPIC| Operation:READ| Pattern Type:LITERALorPREFIXED| Name: Your topic name/prefix
- Resource Type:
GROUP| Operation:READ| Pattern Type:LITERALorPREFIXED| Name: Your consumer group ID
- Resource Type:
TOPIC| Operation:DESCRIBE| Pattern Type:LITERALorPREFIXED| Name: Your topic name/prefix
TOPIC READ is always required. GROUP READ is only required for Python consumers (the confluent-kafka library always uses consumer groups). CLI tools like kcat work with just TOPIC READ permissions. Add DESCRIBE permissions if your client needs metadata access.Code Examples
Prerequisites
- Python
- CLI
Install the required packages:
Your proxy endpoints are listed in the Streamkap web interface at Kafka Access under “Proxy Endpoints”. The format is
<service-name>-<kafka-username>.streamkap.net:PORT.<service-name>-<kafka-username>- Your proxy endpoints<your-username>- Your Kafka user username<your-password>- Your Kafka user password<topic-name>- The topic you want to read from<consumer-group-id>- Your consumer group ID (Python only)
Integrations
Here are quick links to some integrations that support reading from Kafka:- Materialize: link to docs
- Tinybird: link to docs
- SingleStore: link to docs
- Starburst: link to docs
- StarTree: link to docs
- Microsoft Fabric: link to docs
Troubleshooting
Connectivity Issues
Connectivity Issues
Before diving into complex debugging, verify basic network connectivity to your Streamkap Kafka cluster.Test DNS Resolution:Test Port Connectivity:Test SSL/TLS Handshake:Common Network Issues & Solutions:
- VPN interference: Disconnect VPN and try again
- Firewall blocking ports: Ensure ports 32400-32402 are accessible
- Safe listed IPs: Verify your public IP address is in the user’s safe list
SSL & Authentication Issues
SSL & Authentication Issues
Common Errors:
SSL connection closed by peerduring message production- SSL certificate verification failures
SASL authentication failedor authentication errors- SSL handshake failures
- Verify username and password are correct
- Ensure
sasl.mechanismis set toPLAINandsecurity.protocolis set toSASL_SSL - Check that the user account is active and not disabled
- Confirm the user has basic connection permissions
- For Python
Ensure certificates are properly configured: - For CLI tools
Try different certificate paths: - Disable hostname verification (temporary):
- Contact support if issues persist - may require infrastructure team resolution
No messages received (consumers only)
No messages received (consumers only)
Issue: Consumer polls but receives no messagesPossible Causes:
- No messages in topic: Topic is empty or messages are at different offsets
- Consumer group offset: Group has already consumed available messages
- Partition assignment: Messages might be in different partitions
- Offset reset: Check
auto.offset.resetsetting
- Check topic contents: Use CLI to verify messages exist
- Use fresh consumer group: Try with a new
group.id - Reset offsets: Set
auto.offset.resettoearliest - Check all partitions: For CLI, try without specifying partition