FWIW, I happen to know Subodh -- we worked together many years back. We 
discussed this a little off-the-list, but perhaps my thoughts might be of wider 
interest.

Kafka, in my experience, works best when Producers have a persistent TCP 
connection to the Broker(s) (and possibly Zookeeper). I guess that it isn't 
really practical for a mobile device. Also, Kafka messages are a specific 
protocol over TCP, which will need to be coded for the Android platform. I 
don't know how difficult this is, but doesn't seem worth it.

Putting a lightweight HTTP server in front of Kafka is definitely the way to 
go. This could be written in Go, Python, Ruby, node.js -- almost anything. 
These servers will be stateless, and you can run many of them behind a 
load-balancer or, perhaps AWS Route 53, for redundancy. All standard stuff, and 
it's pretty easy nowadays to build scalable web servers. What happens to the 
data afterwards is much harder. :-)

Furthermore, I'm sure it's much easier and quicker to write code on Android to 
perform an arbitrary POST to a URL in the Cloud. Mocking out an HTTP endpoint 
is very easy too, for the purposes of testing the client software.

And the HTTP server can actually be HTTPS, giving the software at the edge 
confidence it is talking to the real endpoint. Perhaps run the HTTP servers 
behind nginx, and let it do the SSL termination. Secure transport is not 
built-into Kafka, last time I checked.

So while strictly speaking it is more software, the system is significantly 
more manageable and robust.

Philip

On Wednesday, July 16, 2014 6:33 PM, Steve Robenalt <sroben...@highwire.org> 
wrote:
 


Hi Subodh,

I would think you'd be better off having an app server of some kind as an
intermediary that accepts messages from your android app and posts them to
Kafka for you, rather than having your app be a Kafka Producer on its own.

Steve



On Wed, Jul 16, 2014 at 1:22 PM, Subodh Nijsure <
subodh.nijs...@sigsensetech.com> wrote:

> Hello,
>
> I am trying to make my Android application to be the producer of messages
> that get sent to Kafka server.
>
> I am trying to compile my android code using following libraries -
> kafka_2.9.2-0.8.1.1.jar, scala-library-2.9.2.jar
>
> However I am running into issue where it produces too many methods.
>
> So the question:
>
> Has anyone been successful in sending messages form Android application to
> server. If I want to trim the libraries should I be just compiling source
> myself or is there and/or any other alternative I should look at to get my
> android app to send message to Kafka server.
>
> -Subodh
>

Reply via email to