A computer-implemented method, comprising: selecting a data partition in a plurality of data partitions of data stream (314, 316) based on a request received from a client processing node (204, 206, 318, 320), each data partition representing an ordered sequence of messages in the data stream (314, 316), wherein the plurality of data partitions are distributed among a plurality of broker nodes (304, 306, 604, 606, 704, 706) in the distributed messaging system (202, 302), wherein the plurality of data partitions in the data stream (314, 316) is arranged using a rooted acyclic directed graph which includes a plurality of vertexes 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 and/or collection of vertexes represents a partition of data; identifying a broker node (304, 306, 604, 606, 704, 706) in the plurality of broker nodes (304, 306, 604, 606, 704, 706) hosting the selected data partition; providing, by the identified broker node (304, 306, 604, 606, 704, 706), the selected data partition to the client processing node (204, 206, 318, 320) for performing at least one function, wherein the client processing node (204, 206, 318, 320) includes a writer processing node (204, 602); and writing, by the writer processing node (204, 602), 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 (200, 300, 800). selecting a data partition in a plurality of data partitions of data stream (314, 316) based on a request received from a client processing node (204, 206, 318, 320), each data partition representing an ordered sequence of messages in the data stream (314, 316), wherein the plurality of data partitions are distributed among a plurality of broker nodes (304, 306, 604, 606, 704, 706) in the distributed messaging system (202, 302), wherein the plurality of data partitions in the data stream (314, 316) is arranged using a rooted acyclic directed graph which includes a plurality of vertexes 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 and/or collection of vertexes represents a partition of data; wherein the plurality of data partitions are distributed among a plurality of broker nodes (304, 306, 604, 606, 704, 706) in the distributed messaging system (202, 302), wherein the plurality of data partitions in the data stream (314, 316) is arranged using a rooted acyclic directed graph which includes a plurality of vertexes 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 and/or collection of vertexes represents a partition of data; identifying a broker node (304, 306, 604, 606, 704, 706) in the plurality of broker nodes (304, 306, 604, 606, 704, 706) hosting the selected data partition; providing, by the identified broker node (304, 306, 604, 606, 704, 706), the selected data partition to the client processing node (204, 206, 318, 320) for performing at least one function, wherein the client processing node (204, 206, 318, 320) includes a writer processing node (204, 602); and writing, by the writer processing node (204, 602), 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 (200, 300, 800).