I want to create a sequence in which an array of objects is checked. In every object it should check whether it has a specific key or not. If not it should send an error.
As a solution for that I came with this: The array of object is splitted in a sequence of single objects with the split node. Now I can Check every object if it has a key or not with a switch node. If everything is right all message parts go to the same join node and are combined automatically back to the previous message. But if any part has not the wanted key, this message part is stopped going further and I will raise an error. So if the array contained 10 object only 9 will arrive at the final join node.
My question is: what will happen to the other 9 message parts. Will they wait forever until they got the last message part? Or is there a timeout which deletes all related parts if the last part does not arrive? Or will the join node detect that no other part is there anymore so it deletes the other message parts?
in automatic mode it just uses the msg.parts properties to determine if it has all the parts... so no timeout no. But manual mode can do the same but add timeout if you wish.
But I don't want to send a message if the timeout is expired. The whole sequence should be discarded if one of the parts is wrong.
But okay if no timeout is in automatic node, what will happen if I have 1000 messages splitted and every time one part is not sent to the join node. Does it have a limit where is discards the messages?
OK, not by default, but as per the info sidebar - you can set (in settings.js) nodeMessageBufferMaxLength and if that is exceed it will flush any pending messages.