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; determining whether the first worker and the second worker are the same worker; based on determining that the first worker and the second worker are the same worker, sending the message via an internal buffer memory of the first worker; and based on determining that the first worker and the second worker are different workers, sending the message via a network that connects the plurality of workers in the distributed graph processing system; and wherein the first worker comprises a plurality of processing threads, and processes a respective plurality of subgraphs concurrently using the plurality of processing threads, and further comprising: based on sending the message via the internal buffer memory of the first worker, accessing the message asynchronously in the second subgraph during a same processing step in which the message was sent.