What is the recommended way to implement response streaming in akka-http?

121 views
Skip to first unread message

Konstantin Shaposhnikov

unread,
Apr 27, 2015, 9:11:05 AM4/27/15
to akka...@googlegroups.com
Hi,

Are there any examples that show how to implement response streaming using akka-http?

Should I create an HttpEntity.CloseDelimited object providing Source instance? What is the recommended way to create such source? In particular I am interested in the following use cases:

- streaming data from a JDBC ResultSet. Should I create a Source with the ResultSet wrapped into an Iterable? How to close the ResultSet and underlying JDBC connection/transaction? How to handle errors?
- streaming data from an java.io.OutputStream instance (data is written to it using library that provides Java API to serialize object to an OutputStream)
- streaming multiple messages sent by an Actor 

Thank you,
Konstantin

Martynas Mickevičius

unread,
Apr 29, 2015, 11:16:32 AM4/29/15
to akka...@googlegroups.com
Hi Konstantin,

On Mon, Apr 27, 2015 at 2:56 PM, Konstantin Shaposhnikov <k.shapo...@gmail.com> wrote:
Hi,

Are there any examples that show how to implement response streaming using akka-http?

Should I create an HttpEntity.CloseDelimited object providing Source instance? What is the recommended way to create such source? In particular I am interested in the following use cases:

Correct. You should use Marshalling infrastructure for that. Take a look at akka-sse project where it defines a Marshaller for Source[ServerSentEvent, Unit] which then allows you to pass in such sources to ctx.complete(...).
 

- streaming data from a JDBC ResultSet. Should I create a Source with the ResultSet wrapped into an Iterable? How to close the ResultSet and underlying JDBC connection/transaction? How to handle errors?

I would recommend trying Slick 3 for this task because since version 3 it supports streaming results using Reactive Streams interfaces.
 
- streaming data from an java.io.OutputStream instance (data is written to it using library that provides Java API to serialize object to an OutputStream)
- streaming multiple messages sent by an Actor 

Thank you,
Konstantin

--
>>>>>>>>>> Read the docs: http://akka.io/docs/
>>>>>>>>>> Check the FAQ: http://doc.akka.io/docs/akka/current/additional/faq.html
>>>>>>>>>> Search the archives: https://groups.google.com/group/akka-user
---
You received this message because you are subscribed to the Google Groups "Akka User List" group.
To unsubscribe from this group and stop receiving emails from it, send an email to akka-user+...@googlegroups.com.
To post to this group, send email to akka...@googlegroups.com.
Visit this group at http://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.



--
Martynas Mickevičius
TypesafeReactive Apps on the JVM
Reply all
Reply to author
Forward
0 new messages