A computer-implemented method, comprising: selecting a data partition in a plurality of data partitions of data stream based on a request received from a client processing node , each data partition representing an ordered sequence of messages in the data stream , wherein the plurality of data partitions are distributed among a plurality of broker nodes in the distributed messaging system , wherein the plurality of data partitions in the data stream is arranged using a rooted acyclic directed graph which includes a plurality of vertexes (402-418) connected by edges, each edge being directed from one vertex to another, such that there is no way to start at a vertex and follow a consistently-directed sequence of edges that eventually loops back to the same vertex again, and wherein a vertex (402-418) and/or collection of vertexes (402-418) represents a partition of data; identifying a broker node in the plurality of broker nodes hosting the selected data partition ; providing, by the identified broker node , the selected data partition to the client processing node for performing at least one function, wherein the client processing node includes a writer processing node ; and writing, by the writer processing node , data to the selected data partition ; wherein the selecting, the identifying, and the providing is performed using at least one processor of at least one computing system . selecting a data partition in a plurality of data partitions of data stream based on a request received from a client processing node , each data partition representing an ordered sequence of messages in the data stream , wherein the plurality of data partitions are distributed among a plurality of broker nodes in the distributed messaging system , wherein the plurality of data partitions in the data stream is arranged using a rooted acyclic directed graph which includes a plurality of vertexes (402-418) connected by edges, each edge being directed from one vertex to another, such that there is no way to start at a vertex and follow a consistently-directed sequence of edges that eventually loops back to the same vertex again, and wherein a vertex (402-418) and/or collection of vertexes (402-418) represents a partition of data; wherein the plurality of data partitions are distributed among a plurality of broker nodes in the distributed messaging system , wherein the plurality of data partitions in the data stream is arranged using a rooted acyclic directed graph which includes a plurality of vertexes (402-418) connected by edges, each edge being directed from one vertex to another, such that there is no way to start at a vertex and follow a consistently-directed sequence of edges that eventually loops back to the same vertex again, and wherein a vertex (402-418) and/or collection of vertexes (402-418) represents a partition of data; identifying a broker node in the plurality of broker nodes hosting the selected data partition ; providing, by the identified broker node , the selected data partition to the client processing node for performing at least one function, wherein the client processing node includes a writer processing node ; and writing, by the writer processing node , data to the selected data partition ; wherein the selecting, the identifying, and the providing is performed using at least one processor of at least one computing system . <EOS>