Kafka வெவ்வேறு வழங்கல் உத்திரவாதங்களை ஆதரிக்கிறது — அதிகபட்சம் ஒரு முறை, குறைந்தபட்சம் ஒரு முறை, மற்றும் சரியாக ஒரு முறை — இவை செய்திகள் இழக்கப்படலாம் அல்லது நகலெடுக்கப்படலாம் என்பதை நির்ধारிக்கின்றன. இவற்றைப் புரிந்துகொள்வது மற்றும் அவற்றை எவ்வாறு அடையவேண்டும் என்பது நம்பகமான அமைப்புகளை உருவாக்குவதற்கு முக்கியமாகும்.
மூன்று வழங்கல் சொற்பொருளுகள்
AT-MOST-ONCE → messages may be LOST but never duplicated:
→ commit offset BEFORE processing → if processing fails, the message is skipped (lost)
→ for: when occasional loss is acceptable and duplicates are not (rare)
AT-LEAST-ONCE → messages are never lost but may be DUPLICATED:
→ commit offset AFTER processing → if a crash occurs before commit, the message is
reprocessed (duplicate) → requires IDEMPOTENT processing
→ the common default; safe (no loss) but handle duplicates
EXACTLY-ONCE → each message is processed exactly once (no loss, no duplicates):
→ the strongest, but hardest; requires Kafka transactions + idempotent producers
