def all_downstreams(self, node):
        """Returns a list of all nodes ultimately downstream
        of the given node in the dependency graph, in
        topological order.

        Args:
             node (str): The node whose downstream nodes you want to find.

        Returns:
            list: A list of nodes that are downstream from the node.
        """
        nodes = [node]
        nodes_seen = set()
        i = 0
        while i < len(nodes):
            downstreams = self.downstream(nodes[i])
            for downstream_node in downstreams:
                if downstream_node not in nodes_seen:
                    nodes_seen.add(downstream_node)
                    nodes.append(downstream_node)
            i += 1
        return [
            node_ for node_ in self.topological_sort() if node_ in nodes_seen
        ]