## 6 Experimental Scenarios and Results
### Latency
In contrast, SDN microservices can provide higher throughput as the system can be scaled horizontally by adding more instances of individual services as needed. * Recovery time: OSPF is designed to support fast convergence and can quickly recover from a link or device failure. However, the convergence time can depend on the size and complexity of the network. SDN microservices can also provide fast recovery times, but it depends on the specific implementation and configuration. * Link failure: OSPF can detect a link failure and reroute traffic along an alternate path, which helps to maintain connectivity. SDN microservices can also detect link failures and potentially provide more granular control over how traffic is rerouted. * Device failure: In OSPF, if a device fails, the routing tables are recalculated, and the network can continue to operate. In SDN microservices, the central controller can detect a device failure and reconfigure the network accordingly. * Controller failure: In SDN microservices, the central controller is a single point of failure. If the controller fails, the network may not be able to operate correctly. However, many SDN solutions provide redundancy and failover mechanisms to minimize the impact of controller failure. Overall, OSPF and SDN microservices have different strengths and weaknesses, and the choice of which one to use depends on the specific network requirements and goals. All of these values are within the ranges defined by the IEEE 61850 standard [37] for safe microgrid operation. Nevertheless, this microservice implementation has the best \begin{table}
\begin{tabular}{c c c c c} \hline \hline \multirow{2}{*}{**Microservices vs. OSPF**} & \multicolumn{3}{c}{**Paired Differences**} & \multirow{2}{*}{**Improvements**} \\ \cline{2-2} \cline{4-5}  & **Mean** & **Std. Deviation** & **Std. Error** & \\ \hline Latency of first package & \(-17.41\) & \(13.12\) & \(2.39\) & \(-29.74\%\) \\ Overall Latency & \(-20.66\) & \(32.41\) & \(6.01\) & \(-4.75\%\) \\ Throughput & \(14.28\) & \(5.24\) & \(0.95\) & \(-4.15\%\) \\ Recovery time & \(214.82\) & \(39.95\) & \(7.29\) & \(53.41\%\) \\ Packet loss-link failure & \(19.75\) & \(2.06\) & \(0.37\) & \(55.98\%\) \\ Packet loss-device failure & \(11.83\) & \(2.30\) & \(0.42\) & \(38.66\%\) \\ Packet loss-controller failure & \(86.00\) & \(1.38\) & \(0.25\) & \(100\%\) \\ \hline \hline \end{tabular}
\begin{tabular}{c c c c c} \hline \hline \multirow{2}{*}{**Microservices vs. Monolithic**} & \multicolumn{3}{c}{**Paired Differences**} & \multirow{2}{*}{**Improvements**} \\ \cline{2-2} \cline{4-5}  & **Mean** & **Std. Deviation** & **Std. Error** & \\ \hline Latency of first package & \(8.46\) & \(14.02\) & \(2.56\) & \(-5.09\%\) \\ Overall Latency & \(32.91\) & \(38.79\) & \(7.20\) & \(10.76\%\) \\ Throughput & \(-50.47\) & \(5.96\) & \(1.08\) & \(7.05\%\) \\ Recovery time & \(257.50\) & \(36.23\) & \(6.61\) & \(36.58\%\) \\ Packet loss-link failure & \(13.01\) & \(2.21\) & \(0.40\) & \(42.23\%\) \\ Packet loss-device failure & \(-1.13\) & \(2.41\) & \(0.44\) & \(-1.42\%\) \\ Packet loss-controller failure & \(85.83\) & \(1.38\) & \(0.25\) & \(100\%\) \\ \hline \hline \end{tabular}
\end{table} 
Table 4: Summary of communication results for test scenarios. portability (by using a Docker container), resiliency (provided by Rancher orchestrator), and scalability results (demonstrated by the recovery time presented in Table 5).