is kafka the right choice

2016-06-23 Thread Pranay Suresh
Hey Kafka experts,

After having read Jay Kreps awesome Kafka reading(
https://engineering.linkedin.com/distributed-systems/log-what-every-software-engineer-should-know-about-real-time-datas-unifying)
I have a doubt.

For communication between browsers (lets say collaborative editing, chat
etc.) is Kafka the right choice ? Especially given that Kafka consumers are
designed to pull , rather than a callback style push. For low latency
possibly ephemeral data/events is Kafka a good choice ? Can I have a
browser open a socket into a webserver and each request initiate a consumer
to consume from kafka (by polling?) OR is Kafka designed and/or meant to be
used for a separate usecase ?

Any feedback is appreciated. Let the bashing begin!

Many Thanks,
pranay


Re: is kafka the right choice

2016-06-23 Thread Philippe Derome
See Keyhole Software blog and particularly John Boardman's presentation of
sample app with responsive web client using WebSockets connecting to a
netty embedded web server that itself uses producer and consumer clients
with a Kafka infrastructure (@johnwboardman). On first look, it seems like
a valid approach. Behind the web server are services that are Kafka apps
interacting with external web APIs.

Anecdotally quite a few companies post jobs with Kafka playing a role in a
micro architecture solution.

I'll now let experts speak...
On 23 Jun 2016 11:47 a.m., "Pranay Suresh"  wrote:

> Hey Kafka experts,
>
> After having read Jay Kreps awesome Kafka reading(
>
> https://engineering.linkedin.com/distributed-systems/log-what-every-software-engineer-should-know-about-real-time-datas-unifying
> )
> I have a doubt.
>
> For communication between browsers (lets say collaborative editing, chat
> etc.) is Kafka the right choice ? Especially given that Kafka consumers are
> designed to pull , rather than a callback style push. For low latency
> possibly ephemeral data/events is Kafka a good choice ? Can I have a
> browser open a socket into a webserver and each request initiate a consumer
> to consume from kafka (by polling?) OR is Kafka designed and/or meant to be
> used for a separate usecase ?
>
> Any feedback is appreciated. Let the bashing begin!
>
> Many Thanks,
> pranay
>


Re: is kafka the right choice

2016-06-24 Thread Ben Stopford
Kafka uses a long poll 
<http://kafka.apache.org/documentation.html#design_pull>. So requests 
effectively block on the server, if there is insufficient data available. This 
elevates many of the issues associated with traditional polling approaches. 

Service-based applications often require directed channels to do request 
response. People do use Kafka in this way, Philippe gave a good example below.  
You just need to be aware that, should you have a lot of services that need to 
interact, it could involve creating a lot of topics.  Kafka topics are 
persistent and generally long lived. They shouldn’t be considered ephemeral 
imho. 

B


> On 23 Jun 2016, at 17:35, Philippe Derome  wrote:
> 
> See Keyhole Software blog and particularly John Boardman's presentation of
> sample app with responsive web client using WebSockets connecting to a
> netty embedded web server that itself uses producer and consumer clients
> with a Kafka infrastructure (@johnwboardman). On first look, it seems like
> a valid approach. Behind the web server are services that are Kafka apps
> interacting with external web APIs.
> 
> Anecdotally quite a few companies post jobs with Kafka playing a role in a
> micro architecture solution.
> 
> I'll now let experts speak...
> On 23 Jun 2016 11:47 a.m., "Pranay Suresh"  wrote:
> 
>> Hey Kafka experts,
>> 
>> After having read Jay Kreps awesome Kafka reading(
>> 
>> https://engineering.linkedin.com/distributed-systems/log-what-every-software-engineer-should-know-about-real-time-datas-unifying
>> )
>> I have a doubt.
>> 
>> For communication between browsers (lets say collaborative editing, chat
>> etc.) is Kafka the right choice ? Especially given that Kafka consumers are
>> designed to pull , rather than a callback style push. For low latency
>> possibly ephemeral data/events is Kafka a good choice ? Can I have a
>> browser open a socket into a webserver and each request initiate a consumer
>> to consume from kafka (by polling?) OR is Kafka designed and/or meant to be
>> used for a separate usecase ?
>> 
>> Any feedback is appreciated. Let the bashing begin!
>> 
>> Many Thanks,
>> pranay
>> 



Re: is kafka the right choice

2016-06-24 Thread Ben Stopford
correction: elevates => alleviates

> On 24 Jun 2016, at 11:13, Ben Stopford  wrote:
> 
> Kafka uses a long poll 
> <http://kafka.apache.org/documentation.html#design_pull>. So requests 
> effectively block on the server, if there is insufficient data available. 
> This elevates many of the issues associated with traditional polling 
> approaches. 
> 
> Service-based applications often require directed channels to do request 
> response. People do use Kafka in this way, Philippe gave a good example 
> below.  You just need to be aware that, should you have a lot of services 
> that need to interact, it could involve creating a lot of topics.  Kafka 
> topics are persistent and generally long lived. They shouldn’t be considered 
> ephemeral imho. 
> 
> B
> 
> 
>> On 23 Jun 2016, at 17:35, Philippe Derome > <mailto:phder...@gmail.com>> wrote:
>> 
>> See Keyhole Software blog and particularly John Boardman's presentation of
>> sample app with responsive web client using WebSockets connecting to a
>> netty embedded web server that itself uses producer and consumer clients
>> with a Kafka infrastructure (@johnwboardman). On first look, it seems like
>> a valid approach. Behind the web server are services that are Kafka apps
>> interacting with external web APIs.
>> 
>> Anecdotally quite a few companies post jobs with Kafka playing a role in a
>> micro architecture solution.
>> 
>> I'll now let experts speak...
>> On 23 Jun 2016 11:47 a.m., "Pranay Suresh" > <mailto:pranay.sur...@gmail.com>> wrote:
>> 
>>> Hey Kafka experts,
>>> 
>>> After having read Jay Kreps awesome Kafka reading(
>>> 
>>> https://engineering.linkedin.com/distributed-systems/log-what-every-software-engineer-should-know-about-real-time-datas-unifying
>>>  
>>> <https://engineering.linkedin.com/distributed-systems/log-what-every-software-engineer-should-know-about-real-time-datas-unifying>
>>> )
>>> I have a doubt.
>>> 
>>> For communication between browsers (lets say collaborative editing, chat
>>> etc.) is Kafka the right choice ? Especially given that Kafka consumers are
>>> designed to pull , rather than a callback style push. For low latency
>>> possibly ephemeral data/events is Kafka a good choice ? Can I have a
>>> browser open a socket into a webserver and each request initiate a consumer
>>> to consume from kafka (by polling?) OR is Kafka designed and/or meant to be
>>> used for a separate usecase ?
>>> 
>>> Any feedback is appreciated. Let the bashing begin!
>>> 
>>> Many Thanks,
>>> pranay
>>> 
>