A method for telecommunications comprising: receiving, by a router, from a customer, a plurality of events for a communications session, the plurality of events being associated with the customer and with at least one particular user involved in the communications session and associated with the customer; transmitting, by the router, the plurality of events; receiving, by a first cluster node associated with the customer, the plurality of events based on the router determining that the first cluster node is associated with the customer, the first cluster node being part of a plurality of cluster nodes, and having a first state machine and an internal message bus; generating, by the first state machine, a current state of the first state machine for the communications session by processing the plurality of events in the order the events are received; publishing, by the first cluster node, the plurality of events associated with the particular user and the order in which the events are received to a persistent event log; receiving, by a second cluster node, from a coordinator in communication with the plurality of cluster nodes, a message directing the second cluster node to subscribe to the persistent event log; subscribing, by the second cluster node, via an external message bus in communication with the plurality of nodes, to the persistent event log when the second cluster node receives the message; receiving, by the second cluster node from the persistent event log, the plurality of events; and generating, by a second state machine in the second cluster node, the current state of the first state machine on the second state machine by processing the plurality of events for the communications session from the persistent event log by rerunning the plurality of events on the second state machine in the same order as by the first cluster node to recreate or rebuild the current state of the first state machine to continue the communications session. receiving, by a router, from a customer, a plurality of events for a communications session, the plurality of events being associated with the customer and with at least one particular user involved in the communications session and associated with the customer; transmitting, by the router, the plurality of events; receiving, by a first cluster node associated with the customer, the plurality of events based on the router determining that the first cluster node is associated with the customer, the first cluster node being part of a plurality of cluster nodes, and having a first state machine and an internal message bus; generating, by the first state machine, a current state of the first state machine for the communications session by processing the plurality of events in the order the events are received; publishing, by the first cluster node, the plurality of events associated with the particular user and the order in which the events are received to a persistent event log; receiving, by a second cluster node, from a coordinator in communication with the plurality of cluster nodes, a message directing the second cluster node to subscribe to the persistent event log; subscribing, by the second cluster node, via an external message bus in communication with the plurality of nodes, to the persistent event log when the second cluster node receives the message; receiving, by the second cluster node from the persistent event log, the plurality of events; and generating, by a second state machine in the second cluster node, the current state of the first state machine on the second state machine by processing the plurality of events for the communications session from the persistent event log by rerunning the plurality of events on the second state machine in the same order as by the first cluster node to recreate or rebuild the current state of the first state machine to continue the communications session.