5

I could not find any answer to this: what is the difference between Faust and kafka-python?
Is there any pros/cons on preferring any one of them?
As I understand it:

  • Kafka is written in Java, and Kafka-python is a Python client to communicate with "Java stream"
  • Faust is a pure "Python stream"

So, if I plan to use only Python then Faust should be better choice and if I want to have wider compatibility (Go, .NET, C/C#, Java, Python) then use Kafka + Kafka-python?

Note: I am new to using Kafka and I am trying to understand the pros/cons of different solutions.

I would highly appreciate any advice!!

Pavol
  • 57
  • 1
  • 3

1 Answers1

11

As I understand it you use both with Kafka, and both from Python, but with the difference that:

  • Faust is for stream processing (filtering, joining, aggregating, etc)
  • kafka-python (just like confluent-kafka-python also) is a client library providing Consumer, Producer, and Admin APIs for Kafka.

So you could easily use both, for different purposes, from Python.

Robin Moffatt
  • 30,382
  • 3
  • 65
  • 92
  • 1
    Thank you! This helped me with clarification. – Pavol Feb 02 '21 at 08:17
  • I'm new to this. Can you explain what is filtering, joining, aggregating in stream processing or provide any reference to understand? TIA – Mitul Mandaliya Mar 04 '22 at 01:19
  • 1
    @MitulMandaliya [This video](https://www.youtube.com/watch?v=7mGBxG2NhVQ) covers a lot of it, as does [this course](https://developer.confluent.io/learn-kafka/kafka-streams/basic-operations/#stream-operations) – Robin Moffatt Mar 04 '22 at 09:08