A computer-implemented method of provisioning a mesh communications network according to a network design, the design defining an arrangement of nodes and links therebetween for providing a service involving communication between a source node and a target node, the method comprising: modelling the network design as a graph data structure in which edges correspond to links and vertices correspond to nodes; iteratively adjusting the graph to represent failures and corresponding repairs to nodes and/or links, and for selected graph adjustments including graph adjustments relating to failures and graph adjustments relating to repairs, evaluating a path through the network from the source node to the target node so as to estimate a measure of the performance of the network design across the iterations; provisioning the mesh network responsive to the measure of performance satisfying a predetermined criterion; wherein: the plurality of failures and corresponding repairs are represented by: i) a plurality of node or link failure events, each relating to a node or link in the mesh network and including a stochastically generated time of failure of the node or link; and ii) a plurality of corresponding node or link repair events, each including a time of repair of the node or link; and adjusting the graph comprises applying the failure or repair events in chronological order to adjust the graph representing the mesh network from a pre-event iteration to a post-event iteration for each failure and repair event. modelling the network design as a graph data structure in which edges correspond to links and vertices correspond to nodes; iteratively adjusting the graph to represent failures and corresponding repairs to nodes and/or links, and for selected graph adjustments including graph adjustments relating to failures and graph adjustments relating to repairs, evaluating a path through the network from the source node to the target node so as to estimate a measure of the performance of the network design across the iterations; provisioning the mesh network responsive to the measure of performance satisfying a predetermined criterion; wherein: the plurality of failures and corresponding repairs are represented by: i) a plurality of node or link failure events, each relating to a node or link in the mesh network and including a stochastically generated time of failure of the node or link; and ii) a plurality of corresponding node or link repair events, each including a time of repair of the node or link; and adjusting the graph comprises applying the failure or repair events in chronological order to adjust the graph representing the mesh network from a pre-event iteration to a post-event iteration for each failure and repair event. the plurality of failures and corresponding repairs are represented by: i) a plurality of node or link failure events, each relating to a node or link in the mesh network and including a stochastically generated time of failure of the node or link; and ii) a plurality of corresponding node or link repair events, each including a time of repair of the node or link; and i) a plurality of node or link failure events, each relating to a node or link in the mesh network and including a stochastically generated time of failure of the node or link; and ii) a plurality of corresponding node or link repair events, each including a time of repair of the node or link; and adjusting the graph comprises applying the failure or repair events in chronological order to adjust the graph representing the mesh network from a pre-event iteration to a post-event iteration for each failure and repair event.