When to use invoke and when to use stream?

I noticed that in some areas of the code, the model is being called

‘for event in abot.graph.stream({“messages”: messages}, thread)’

whereas in some other places, it’s being called ‘message = self.model.invoke(messages)’.

What’s the difference between these two? When should we use each of them?