1. A method for subgraph-based distributed graph processing, comprising: receiving an input graph comprising a plurality of vertices and edges; partitioning the input graph into a plurality of subgraphs, each subgraph comprising internal vertices that are owned by the subgraph, and boundary vertices, each of the boundary vertices corresponding an internal vertex that is owned by another subgraph, wherein each vertex in the input graph is owned by a single respective subgraph; assigning one or more respective subgraphs to each of a plurality of workers of a distributed graph processing system; and initiating processing of the plurality of subgraphs by performing a series of processing steps, wherein a processing step comprises: processing the internal vertices and boundary vertices internally within each of the subgraphs, wherein each of the workers performs the internal processing of each worker's respective one or more subgraphs; detecting that a change was made to a boundary vertex of a first subgraph during the internal processing; and sending a message from a first worker to which the first subgraph is assigned to a second worker to which a second subgraph is assigned in response to detecting the change that was made to the boundary vertex of the first subgraph.