Hi Dominic, this is certainly a good thought and would simplify debugging production systems as well.
A rough and dirty idea for the uniqueness issue you mentioned: What if we just append a suffix for each of the child ids (essentially they are in a parent/child relationship). A simple example: Sequence action invoke, Router generated id: abc-def (used as TransactionId and ActivationId) Invocation of the first action: abc-def-1 Invocation of the second action: abc-def-2 ... The suffix doesn't necessarily need to be a number, but especially in the case of sequences, that could greatly help observability and understanding what's going on. It'd also help operators, because the respective requests would be groupable (logwise) by the respective "BaseActivationId" (abc-def in the example). As the ActivationId no longer needs to be a UUID anyway, we can do whatever we want to do with it. If we use numbers, we need to ensure consistent generation of these of course. I think though, both Triggers and Sequence invocations will only be handled locally by one Controller, so it can hand out the numbers guaranteeing they don't overlap. What do you think? Cheers, Markus Am Do., 23. Aug. 2018 um 05:39 Uhr schrieb Dominic Kim <[email protected] >: > Dear whiskers. > > This is to discuss to whether we will allow using TransactionID as > ActivationID. > Some of discussion history is here: > https://github.com/apache/incubator-openwhisk/pull/3671 > > As that PR is merged, now ActivationID is included in response headers. > > Currently, TransactionID is being generated in Nginx with this change: > https://github.com/apache/incubator-openwhisk/pull/3199 > > Then, one question that Rabbah raised comes up. > Why do we have similar two IDs in headers? (x-request-id, > x-openwhisk-activation-id) > Couldn't it be possible to use just one ID for both the cases? > > Basic idea is just to use TransactionID(x-request-id) as a ActivationID. > But there are still few concerns that Christian described here: > > https://github.com/apache/incubator-openwhisk/pull/3671#issuecomment-392002543 > > And the main issue is the uniqueness of ActivationID. > If we allow using TransactionID as ActivationID, ActivationID could be > generated in two different places(Nginx, controller) as a controller also > needs to generate activation id in case of triggers and sequence actions > invocation. > > I want to kick off the discussion and listen to a good idea from many > whiskers. > > > Thanks > Regards > Dominic. >
