fnproject / fn

The container native, cloud agnostic serverless platform.
http://fnproject.io
Apache License 2.0
5.76k stars 405 forks source link

Nats streaming support #1066

Open carimura opened 6 years ago

carimura commented 6 years ago

Aligns with our current trigger work, cloudevents support, and cncf participation.

request here: https://github.com/fnproject/fn/issues/446

makrusak commented 6 years ago

Is any work done on this issue? I'm interested in contributing to Fn, so I would be glad to discuss this issue with somebody and implement it (or help in implementing).

carimura commented 6 years ago

@makrusak would love help here... @rdallman and @zootalures have the latest info on the triggers work and may have thoughts on implementation. We could also setup a room in our Slack to discuss -- http://slack.fnproject.io

zootalures commented 6 years ago

Hey there are a couple things here:

This would be our first native queue-based trigger integration (which is great) - there are some things to work out there though:

On the technical side, we need to be able to spin up queue runners for each attached stream - inside FN we'd like to be able to run this both as a capability of a single FN server (e.g. fn start) and also likely also as a distributed component (e.g. as a kube POD) in a scaled up environment - this is similar to what we did in the runner abstraction for Fn calls.

We're converging on cloudevents as a lingua franca for functions going forward - for triggers there is a choice to bind directly to incoming cloud events (e.g. a cloudevents webhook that only receives cloud event-type webhooks) or to wrap other input into corresponing cloud events (we are doing this for HTTP trigggers now) - in this case a raw HTTP request becomes a fn-defined cloud event describing the input.

There is a proposed cloudevents NATS binding pattern here: https://github.com/cloudevents/spec/blob/master/nats-transport-binding.md - i'd like to investigate whether this could be supported in line and then build a "arbitrary NATS event" capability on top of this.

hibooboo2 commented 6 years ago

👍 For NATS support.