Disclosed are distributed computing systems and methods for controlling multiple autonomous control modules and subsystems in an autonomous vehicle. In some aspects of the disclosed technology, a computing architecture for an autonomous vehicle includes distributing the complexity of autonomous vehicle operation, thereby avoiding the use of a single high-performance computing system and enabling off-the-shelf components to be use more readily and reducing system failure rates.