TL;DR: Continue current execution route only once all incoming states executed successfully.

A state may have multiple incoming states, connected to it. Just like in the following example:

The state "state_4" has 3 states connected to it. In this example, say all 3 states "out_1", "out_2", and "out_3" execute successfully. This means that state "state_4" will be executed 3 times!

Now, sometimes it might be a desirable outcome, but at other times you might only want to execute "state_4" once all incoming states finished successfully, and you might want it to execute only once.

Using the state of type "Synchronize" does exactly that - it will wait until all incoming states finish executing successfully, and only then "state_4" will be considered done, and let the execution continue to whatever comes next (whatever "state_4" is connected to).