Process Flow - Schema validation in producers
Start Producer
Prepare Message
Validate Message Against Schema
Send
Message Sent
End Producer
The producer prepares a message, checks it against the schema, sends it if valid, or rejects it if invalid.
producer.send({"name": "Alice", "age": 30})
# Validate message schema
# If valid, send
# Else, raise error| Step | Action | Message Content | Schema Valid? | Result |
|---|---|---|---|---|
| 1 | Prepare message | {"name": "Alice", "age": 30} | N/A | Message ready |
| 2 | Validate message | {"name": "Alice", "age": 30} | Yes | Validation passed |
| 3 | Send message | {"name": "Alice", "age": 30} | Yes | Message sent |
| 4 | Prepare message | {"name": "Bob", "age": "thirty"} | N/A | Message ready |
| 5 | Validate message | {"name": "Bob", "age": "thirty"} | No | Validation failed - reject message |
| 6 | Stop sending | {"name": "Bob", "age": "thirty"} | No | Error raised, message not sent |
| Variable | Start | After Step 1 | After Step 2 | After Step 3 | After Step 4 | After Step 5 | After Step 6 |
|---|---|---|---|---|---|---|---|
| message | null | {"name": "Alice", "age": 30} | {"name": "Alice", "age": 30} | sent | {"name": "Bob", "age": "thirty"} | {"name": "Bob", "age": "thirty"} | error |
| validation_status | null | pending | valid | sent | pending | invalid | error |
Schema validation in producers: - Producer prepares message - Checks message against schema - If valid, sends message - If invalid, rejects and raises error - Prevents bad data from entering Kafka