Is there an order guarantee in place in message passing for defold/lua?

Do i need to worry about race conditions and performing locking on global variables when there’s a potential for it to be updated from difference sources at the same time?

No, there’s no multi threading or anything like that. Not even with coroutines. There are projects such as LuaLanes that gives Lua thread support, but it’s nothing that is or most likely ever will be included in Defold.