3 ms·
Generally I'd suggest combining different messaging/streaming(ex: Kafka) & FaaS/serverless (ex: OpenFaaS, Fission, OpenWhisk) layers to achieve something like
by jauntywundrkind 3y ago
Generally I'd suggest combining different messaging/streaming(ex: Kafka) & FaaS/serverless (ex: OpenFaaS, Fission, OpenWhisk) layers to achieve something like Async. Where-as Async seems to be a bit of both. I think over time we'll see streaming systems expand their footprint & keep eating away at the space pure FaaS occupies.
Apache Pulsar has been around for a while as a streaming system, and it does have a fairly significant Pulsar Functions layer which might make it a decent all in one candidate. (Pulsar in general feels like a much smarter lower-latency take on Kafka, allowing much more control/flexibility of where data gets backed/replicated/read from that makes it exceedingly more useful for "log/stream is the database" styles.)
https://pulsar.apache.org/docs/3.1.x/functions-overview/ https://pulsar.apache.org/docs/3.1.x/functions-overview/
There's so many up and coming streaming things here. Apache Ballista. Netflix's Mantis. RisingWave. A million years ago there was SOA; a startup I was at used Apache Camel. Benthos. Others. Many of these will decidedly remain more streaming oriented, not encroach on FaaS space, which is fine, but I think we'll see overlap grow. Reductionist, but a function call is "run this code when a function name and parameters happen" versus maybe "run this code when an event type happens", which seems not so far apart to me.