CAYENNE_OUT_DEFAULT() is called every 15 seconds.
CAYENNE_IN() is called whenever a new message is received from the server. So if by “happen sequentially” you mean are they always called in succession, no. The
CAYENNE_IN() function only executes when it gets a message, not every 15 seconds.
If you want more control over calling them there are a few options. One is to make a helper function to do the work, and then have both
CAYENNE_OUT_DEFAULT() and your main loop call that. Another is to just send data from the main loop as described by item #2 in the link shramiksalgaonkar posted.
A third way would be to use the poll-interval branch of the Arduino library which adds support for specifying the interval that
CAYENNE_OUT functions are called via a parameter to
Cayenne.loop. Though that code is untested so it could have issues. Also, you have to be careful not to send data at very short intervals since it could cause your device to be limited or blocked.