controller communication via I/O

Is there any reason why one controller can’t communicate with another controller by sending a signal over the I/O lines? For example, when some condition is met in the program of controller ‘A’, it sends a digital out to controller ‘B’, which, when it sees the digital in signal, performs it’s routine.

From the same power source, it should be fine… a 5volt output goes into a 5volt input.

With different Power Sources, a “common ground” would be needed to complete the circuit. This could cause other issues as well, so be careful