Here are a few more examples of "meta" information, other than transaction id. - QoS (e.g., to affect scheduling) - URL of specific log channel (e.g., to consolidate logs across a chain of invocations) - Flow ID (e.g., for tracing) - Debug flag (e.g., to enable step-into interactive debugging)
The common pattern - these data fields are all shared across a chain of invocations. The mechanism to support them (IMHO) should be being [semi-]transparently passing the data from caller to callee. This can be done whether the call is synchronous, asynchronous or via event trigger. As for mapping "meta" fields to environment variables, if we're already adding one new env var (PR #4586), then we can have that env var serve as a key to a record containing all the meta data, which could be retrieved on-demand. Regards, -- Erez From: Tyson Norris <tnor...@adobe.com.INVALID> To: "dev@openwhisk.apache.org" <dev@openwhisk.apache.org> Date: 21/08/2019 20:09 Subject: [EXTERNAL] Re: Passing TransactionId as part of action invocation I think the point of transaction id in this case is to correlate multiple activations, similar to how a sequence works, but not relying on sequence as the mechanism for doing this. Today, if you launch many activations explicitly, e.g. using OW SDK in your nodejs action, they are not "related" to each other, and this would offer a way to work around that. Initially, just storing the transaction id, means that operators can create queries to stitch multiple activations that originated from the same request. It would also be possible to expose transaction id to users in the same way that activation id is using a first class API, maybe as part of the existing activation API, e.g. GET o/api/v1/namespaces/_/activations?tid=<transactionid> Users can certainly use APIs wrong, but with decent documentation, I don't think this should dissuade us from providing the feature. Thanks Tyson On 8/21/19, 8:16 AM, "Martin Henke" <martin.he...@web.de> wrote: Chetan, from an operational point of view I have some fear that we will confuse the user by making the transaction id visible as a second id besides the activation id. Some will certainly use it to fetch activation records and fail, which will lead to questions. Any thoughts from your side ? Regards, Martin > On 20. Aug 2019, at 12:32, Chetan Mehrotra <chetan.mehro...@gmail.com> wrote: > > I created a separate thread to discuss how to store such metadata related > to activation. > > Current open PR #4586 only enables exposing the transactionId to env. It > does not make any attempt to store the transactionId currently. Once we > decide how such data should be stored then I can open PR for the same > > Chetan Mehrotra > > > On Mon, Aug 19, 2019 at 8:47 AM Rodric Rabbah <rod...@gmail.com> wrote: > >> Yes indeed. Your pr already open I think is fine as is. >> >> -r >> >> On Aug 19, 2019, at 11:36 AM, Chetan Mehrotra <chetan.mehro...@gmail.com> >> wrote: >> >>>> That?s true. Time for api/v2... >>> >>> This is now becoming a rabbit hole! What option should we use without >> going >>> for v2? >>> >>> 1. Introduce a new "meta" sub document >>> 2. OR Change annotations to flat map while storing but transform that to >>> array based structure while returning to client >>> >>> Chetan Mehrotra >>> >>> >>>> On Mon, Aug 19, 2019 at 7:15 AM Rodric Rabbah <rod...@gmail.com> wrote: >>>> >>>> >>>>> However changing them now would cause compatibility >>>>> issue with various tooling out there which may be interpreting the >>>>> annotation per current design >>>> >>>> That?s true. Time for api/v2... ? >>