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
- Whitelisted 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 ForGROUPresources (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
- Whitelisted IPs: Verify your public IP address is in the user’s whitelist
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
Topic authorization failed
Topic authorization failed
Group authorization failed (consumers only)
Group authorization failed (consumers only)
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