Mailing List Archive

Perl-based event server?
Hello, mod_perl users,

TL;DR: which Perl-based solution would you recommend for serving long-term
HTTP connections?

We use mod_perl for our project, and we would like to add
a component which needs long-term connections (think websockets or
server-side-events
https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events).
We use mpm_prefork for the main site, so adding long-term connections
there is not feasible. So I am looking for alternatives. The logic
behind this application would probably not be overly complicated,
probably just forwarding pub/sub events from Redis or some other
message broker to HTTP clients or something like that.

I would expect to serve about 30-100k simultaneous connections,
not necessarily handled by a single host. The peak value of 10k connections
per host would be sufficient. I expect I will put haproxy or some other
load balancer in front of these servers, so for example SSL/TLS is not
strictly necessary.

Is mod_perl with mpm_worker suitable for this task? Or should I use
something AnyEvent-based, such as Twiggy (I don't know whether Twiggy
supports multiple processes/threads)? Or even something completely different?

Thanks in advance for any recommendations.

-Yenya

--
| Jan "Yenya" Kasprzak <kas at {fi.muni.cz - work | yenya.net - private}> |
| http://www.fi.muni.cz/~kas/ GPG: 4096R/A45477D5 |
We all agree on the necessity of compromise. We just can't agree on
when it's necessary to compromise. --Larry Wall
Re: Perl-based event server? [ In reply to ]
Good luck. I've begun porting our application to Elixir because of this and
other issues.

On Wed, May 19, 2021 at 4:57 AM Jan Kasprzak <kas@fi.muni.cz> wrote:

> Hello, mod_perl users,
>
> TL;DR: which Perl-based solution would you recommend for serving long-term
> HTTP connections?
>
> We use mod_perl for our project, and we would like to add
> a component which needs long-term connections (think websockets or
> server-side-events
>
> https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events
> ).
> We use mpm_prefork for the main site, so adding long-term connections
> there is not feasible. So I am looking for alternatives. The logic
> behind this application would probably not be overly complicated,
> probably just forwarding pub/sub events from Redis or some other
> message broker to HTTP clients or something like that.
>
> I would expect to serve about 30-100k simultaneous connections,
> not necessarily handled by a single host. The peak value of 10k connections
> per host would be sufficient. I expect I will put haproxy or some other
> load balancer in front of these servers, so for example SSL/TLS is not
> strictly necessary.
>
> Is mod_perl with mpm_worker suitable for this task? Or should I use
> something AnyEvent-based, such as Twiggy (I don't know whether Twiggy
> supports multiple processes/threads)? Or even something completely
> different?
>
> Thanks in advance for any recommendations.
>
> -Yenya
>
> --
> | Jan "Yenya" Kasprzak <kas at {fi.muni.cz - work | yenya.net - private}>
> |
> | http://www.fi.muni.cz/~kas/ GPG: 4096R/A45477D5
> |
> We all agree on the necessity of compromise. We just can't agree on
> when it's necessary to compromise. --Larry Wall
>


--
John Dunlap
*CTO | Lariat *

*Direct:*
*john@lariat.co <john@lariat.co>*

*Customer Service:*
877.268.6667
support@lariat.co