
{"id":2994,"date":"2021-04-16T06:26:39","date_gmt":"2021-04-16T06:26:39","guid":{"rendered":"https:\/\/waterstream.io\/?p=2994"},"modified":"2025-09-30T12:48:19","modified_gmt":"2025-09-30T12:48:19","slug":"what-if-the-waterstream-node-goes-down","status":"publish","type":"post","link":"https:\/\/waterstream.io\/it\/2021\/04\/16\/what-if-the-waterstream-node-goes-down\/","title":{"rendered":"What if the Waterstream node goes down?"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"2994\" class=\"elementor elementor-2994\" data-elementor-post-type=\"post\">\n\t\t\t\t<div class=\"elementor-element elementor-element-258e4c4 e-flex e-con-boxed e-con e-parent\" data-id=\"258e4c4\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-787c2ef elementor-widget elementor-widget-image\" data-id=\"787c2ef\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"900\" height=\"600\" src=\"https:\/\/waterstream.io\/wp-content\/uploads\/2021\/04\/Waterstream-node.jpg\" class=\"attachment-large size-large wp-image-5994\" alt=\"\" srcset=\"https:\/\/waterstream.io\/wp-content\/uploads\/2021\/04\/Waterstream-node.jpg 900w, https:\/\/waterstream.io\/wp-content\/uploads\/2021\/04\/Waterstream-node-300x200.jpg 300w, https:\/\/waterstream.io\/wp-content\/uploads\/2021\/04\/Waterstream-node-768x512.jpg 768w\" sizes=\"(max-width: 900px) 100vw, 900px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-4e6b483 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"4e6b483\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-072dc8e\" data-id=\"072dc8e\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-de8fda0 elementor-widget elementor-widget-text-editor\" data-id=\"de8fda0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p style=\"font-variant-caps: normal; font-family: Mulish, sans-serif; font-size: 16px; font-style: normal;\">If you&#8217;ve ever wondered how Waterstream cluster behaves if one of its members goes down &#8211; here are some tests we&#8217;ve done.<\/p>\n<p style=\"font-variant-caps: normal; font-family: Mulish, sans-serif; font-size: 16px; font-style: normal;\">The test setup consists of Kafka provided by\u00a0<a style=\"font-size: 16px;\" href=\"https:\/\/docs.confluent.io\/cloud\/current\/overview.html\">Confluent Cloud<\/a>, 5 nodes of Waterstream and a load balancer running on\u00a0<a style=\"font-size: 16px;\" href=\"https:\/\/cloud.google.com\/\">Google Cloud Platform<\/a>, and 5 nodes of\u00a0<a style=\"font-size: 16px;\" href=\"https:\/\/github.com\/simplematter\/simplematter-mqtt-load-simulator\">MQTT load simulator<\/a>\u00a0&#8211; also on GCP.<\/p>\n<p style=\"font-variant-caps: normal; font-family: Mulish, sans-serif; font-size: 16px; font-style: normal;\"><span style=\"font-family: Mulish, sans-serif; font-size: 16px; font-style: normal; font-variant-caps: normal;\">The scripts we used for creating topics in Confluent Cloud and for running Waterstream in Google Cloud are here:\u00a0<\/span><a style=\"font-variant-caps: normal; font-family: Mulish, sans-serif; font-size: 16px; font-style: normal;\" href=\"https:\/\/github.com\/simplematter\/waterstream-gcp-terraform\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/github.com\/simplematter\/waterstream-gcp-terraform<\/a><span style=\"font-family: Mulish, sans-serif; font-size: 16px; font-style: normal; font-variant-caps: normal;\">. This setup has a single Kafka topic for MQTT messages with 10 partitions (in Confluent Cloud cluster capacity depends on number of partitions). For Waterstream deployment, we&#8217;ve used 5 n1-standard-1 nodes (1 CPU, 3.75 GB RAM). A separate VM hosts Prometheus and Grafana, which we&#8217;re going to use for monitoring Waterstream behavior during a simulated node failure.<\/span><\/p>\n<p style=\"font-variant-caps: normal; font-family: Mulish, sans-serif; font-size: 16px; font-style: normal;\"><span style=\"font-family: Mulish, sans-serif; font-size: 16px; font-style: normal; font-variant-caps: normal;\">The scripts we used for creating topics in Confluent Cloud and for running Waterstream in Google Cloud are here:\u00a0<\/span><a style=\"font-variant-caps: normal; font-family: Mulish, sans-serif; font-size: 16px; font-style: normal;\" href=\"https:\/\/github.com\/simplematter\/waterstream-gcp-terraform\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/github.com\/simplematter\/waterstream-gcp-terraform<\/a><span style=\"font-family: Mulish, sans-serif; font-size: 16px; font-style: normal; font-variant-caps: normal;\">. This setup has a single Kafka topic for MQTT messages with 10 partitions (in Confluent Cloud cluster capacity depends on number of partitions). For Waterstream deployment, we&#8217;ve used 5 n1-standard-1 nodes (1 CPU, 3.75 GB RAM). A separate VM hosts Prometheus and Grafana, which we&#8217;re going to use for monitoring Waterstream behavior during a simulated node failure.\u00a0<\/span><span style=\"font-family: Mulish, sans-serif; font-size: 16px; font-style: normal; font-variant-caps: normal; color: var( --e-global-color-text );\">MQTT load generator also has scripts for launching it on <\/span><a style=\"font-family: Mulish, sans-serif; font-size: 16px; font-style: normal; font-variant-caps: normal;\" href=\"https:\/\/github.com\/simplematter\/simplematter-mqtt-load-simulator\/tree\/master\/toolbelt\/terraform_gcp\">Google Cloud.<\/a><\/p>\n<p style=\"font-variant-caps: normal; font-family: Mulish, sans-serif; font-size: 16px; font-style: normal;\">We&#8217;ve configured it to run 5 nodes on the same machine type &#8211; n1-standard-1. Each node spawns 20k clients with ramp-up time 120 seconds. Together that makes 100k clients. When ramp-up completes, each clients sends 0.8&#8230; 1.2 KB QoS 2 (exactly once) PUBLISH message every 10 seconds. Clean Session flag for all the clients is\u00a0<code>false<\/code>, so that we could also test the loading of the session data upon client reconnect.<\/p>\n<p style=\"font-variant-caps: normal; font-family: Mulish, sans-serif; font-size: 16px; font-style: normal;\">Having all this infrastructure started, we&#8217;ve waited few minutes to see all the clients connected and produce messages and expected.\u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-cba0cf0 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"cba0cf0\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-6cc4144\" data-id=\"6cc4144\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-a4b2451 elementor-widget elementor-widget-image\" data-id=\"a4b2451\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"1024\" height=\"530\" src=\"https:\/\/waterstream.io\/wp-content\/uploads\/2021\/04\/LoadSimulatorBeforeShuttingDownANode-1024x530.png\" class=\"attachment-large size-large wp-image-5491\" alt=\"\" srcset=\"https:\/\/waterstream.io\/wp-content\/uploads\/2021\/04\/LoadSimulatorBeforeShuttingDownANode-1024x530.png 1024w, https:\/\/waterstream.io\/wp-content\/uploads\/2021\/04\/LoadSimulatorBeforeShuttingDownANode-300x155.png 300w, https:\/\/waterstream.io\/wp-content\/uploads\/2021\/04\/LoadSimulatorBeforeShuttingDownANode-768x398.png 768w, https:\/\/waterstream.io\/wp-content\/uploads\/2021\/04\/LoadSimulatorBeforeShuttingDownANode-1536x795.png 1536w, https:\/\/waterstream.io\/wp-content\/uploads\/2021\/04\/LoadSimulatorBeforeShuttingDownANode-2048x1060.png 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/>\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\">The load simulator before  stopping a node - see the red line<\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c6c63fa elementor-widget elementor-widget-image\" data-id=\"c6c63fa\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"1024\" height=\"526\" src=\"https:\/\/waterstream.io\/wp-content\/uploads\/2021\/04\/Waterstream-Connected-Clients-before-stopping-a-node-1024x526.png\" class=\"attachment-large size-large wp-image-5492\" alt=\"\" srcset=\"https:\/\/waterstream.io\/wp-content\/uploads\/2021\/04\/Waterstream-Connected-Clients-before-stopping-a-node-1024x526.png 1024w, https:\/\/waterstream.io\/wp-content\/uploads\/2021\/04\/Waterstream-Connected-Clients-before-stopping-a-node-300x154.png 300w, https:\/\/waterstream.io\/wp-content\/uploads\/2021\/04\/Waterstream-Connected-Clients-before-stopping-a-node-768x395.png 768w, https:\/\/waterstream.io\/wp-content\/uploads\/2021\/04\/Waterstream-Connected-Clients-before-stopping-a-node-1536x789.png 1536w, https:\/\/waterstream.io\/wp-content\/uploads\/2021\/04\/Waterstream-Connected-Clients-before-stopping-a-node-2048x1052.png 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/>\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\">Waterstream connected clients before stopping a node - see the red line<\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-c1f35f9 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"c1f35f9\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-2f4da65\" data-id=\"2f4da65\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-eab0bf3 elementor-widget elementor-widget-text-editor\" data-id=\"eab0bf3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-variant-caps: normal; font-family: Mulish, sans-serif; font-size: 16px; font-style: normal;\">Then we opened a console of one of the Waterstream nodes and shut down the Docker container of the Waterstream and<\/span><span style=\"font-variant-caps: normal; font-family: Mulish, sans-serif; font-size: 16px; font-style: normal; color: var( --e-global-color-text );\">\u00a0watch Waterstream Grafana dashboard to see the effect:<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-095a1f3 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"095a1f3\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-f3d24d2\" data-id=\"f3d24d2\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-c6eaf48 elementor-widget elementor-widget-image\" data-id=\"c6eaf48\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"528\" src=\"https:\/\/waterstream.io\/wp-content\/uploads\/2021\/04\/Waterstream-after-stopping-a-node-1024x528.png\" class=\"attachment-large size-large wp-image-5493\" alt=\"\" srcset=\"https:\/\/waterstream.io\/wp-content\/uploads\/2021\/04\/Waterstream-after-stopping-a-node-1024x528.png 1024w, https:\/\/waterstream.io\/wp-content\/uploads\/2021\/04\/Waterstream-after-stopping-a-node-300x155.png 300w, https:\/\/waterstream.io\/wp-content\/uploads\/2021\/04\/Waterstream-after-stopping-a-node-768x396.png 768w, https:\/\/waterstream.io\/wp-content\/uploads\/2021\/04\/Waterstream-after-stopping-a-node-1536x792.png 1536w, https:\/\/waterstream.io\/wp-content\/uploads\/2021\/04\/Waterstream-after-stopping-a-node-2048x1056.png 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/>\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\">Waterstream rebalancing the load of survivor nodes - see the red line<\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-df42d1c elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"df42d1c\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-5b39a96\" data-id=\"5b39a96\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-018fb2e elementor-widget elementor-widget-text-editor\" data-id=\"018fb2e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p style=\"font-variant-caps: normal; font-family: Mulish, sans-serif; font-size: 16px; font-style: normal;\">As you can see, after a while clients started to notice that connections are broken and they need to re-connect. 1 minute 45 seconds after the start of the simulated incident all the clients have successfully connected to the survivor nodes. Looking at the connection details in the Load Simulator Waterstream dashboard we can see that there were 19.9k connections with the node that went down and that there were some unsuccessful attempts to re-connect while the load balancer hadn&#8217;t yet detected the node failure:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-bdd1ad1 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"bdd1ad1\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-99c57f5\" data-id=\"99c57f5\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-e640d2e elementor-widget elementor-widget-image\" data-id=\"e640d2e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"525\" src=\"https:\/\/waterstream.io\/wp-content\/uploads\/2021\/04\/Load-simulator-after-a-node-was-stopped-1024x525.png\" class=\"attachment-large size-large wp-image-5498\" alt=\"\" srcset=\"https:\/\/waterstream.io\/wp-content\/uploads\/2021\/04\/Load-simulator-after-a-node-was-stopped-1024x525.png 1024w, https:\/\/waterstream.io\/wp-content\/uploads\/2021\/04\/Load-simulator-after-a-node-was-stopped-300x154.png 300w, https:\/\/waterstream.io\/wp-content\/uploads\/2021\/04\/Load-simulator-after-a-node-was-stopped-768x394.png 768w, https:\/\/waterstream.io\/wp-content\/uploads\/2021\/04\/Load-simulator-after-a-node-was-stopped-1536x788.png 1536w, https:\/\/waterstream.io\/wp-content\/uploads\/2021\/04\/Load-simulator-after-a-node-was-stopped-2048x1050.png 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/>\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\">The load simulator shows restoring clients on the survivor Waterstream nodes - see the red line<\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-4a2f2517 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"4a2f2517\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-27f9efc4\" data-id=\"27f9efc4\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-2456be41 elementor-widget elementor-widget-text-editor\" data-id=\"2456be41\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><\/p>\n<p><\/p>\n<p><\/p>\n<figure class=\"wp-block-image size-large padding-right: 30px;\"><\/figure>\n<p>And here is the part of the Waterstream dashboard that shows the session loading metrics.&nbsp;<span style=\"color: var( --e-global-color-text ); font-size: 16px;\">You may see that it has successfully loaded existing sessions for the clients that were re-connecting.<\/span><\/p>\n<p><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-46b131b elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"46b131b\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-0f145db\" data-id=\"0f145db\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-8643635 elementor-widget elementor-widget-image\" data-id=\"8643635\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"523\" src=\"https:\/\/waterstream.io\/wp-content\/uploads\/2021\/04\/Waterstream-Clients-by-node-1024x523.png\" class=\"attachment-large size-large wp-image-5503\" alt=\"\" srcset=\"https:\/\/waterstream.io\/wp-content\/uploads\/2021\/04\/Waterstream-Clients-by-node-1024x523.png 1024w, https:\/\/waterstream.io\/wp-content\/uploads\/2021\/04\/Waterstream-Clients-by-node-300x153.png 300w, https:\/\/waterstream.io\/wp-content\/uploads\/2021\/04\/Waterstream-Clients-by-node-768x392.png 768w, https:\/\/waterstream.io\/wp-content\/uploads\/2021\/04\/Waterstream-Clients-by-node-1536x785.png 1536w, https:\/\/waterstream.io\/wp-content\/uploads\/2021\/04\/Waterstream-Clients-by-node-2048x1046.png 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-1cb8a57 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"1cb8a57\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-4b988c0\" data-id=\"4b988c0\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-0751420 elementor-widget elementor-widget-text-editor\" data-id=\"0751420\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p style=\"font-variant-caps: normal; font-family: Mulish, sans-serif; font-size: 16px; font-style: normal;\">As the tests are complete, shut down load generator and Waterstream, and remove topics from Confluent Cloud to stop being charged.<\/p>\n<p style=\"font-variant-caps: normal; font-family: Mulish, sans-serif; font-size: 16px; font-style: normal;\">\u00a0<\/p>\n<p style=\"font-variant-caps: normal; font-family: Mulish, sans-serif; font-size: 16px; font-style: normal;\">\u00a0<\/p>\n<p style=\"font-variant-caps: normal; font-family: Mulish, sans-serif; font-size: 16px; font-style: normal;\">This test demonstrates how survivor Waterstream nodes may take over the load of the failed one, keep the cluster running and client sessions available. If you want to repeat these tests yourselves you can ask evaluation license\u00a0<a style=\"font-size: 16px;\" href=\"\/try-waterstream\/\">here<\/a>\u00a0and get support on\u00a0<a style=\"font-size: 16px;\" href=\"https:\/\/discuss.waterstream.io\/\">our forum<\/a>.<\/p>\n<p style=\"font-variant-caps: normal; font-family: Mulish, sans-serif; font-size: 16px; font-style: normal;\">Enjoy your IoT!<\/p>\n<p style=\"font-variant-caps: normal; font-family: Mulish, sans-serif; font-size: 16px; font-style: normal;\"><em>Author: Paul Lysak<\/em><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>If you&#8217;ve ever wondered how Waterstream cluster behaves if one of its members goes down &#8211; here are some tests we&#8217;ve done. The test setup consists of Kafka provided by\u00a0Confluent Cloud, 5 nodes of Waterstream and a load balancer running on\u00a0Google Cloud Platform, and 5 nodes of\u00a0MQTT load simulator\u00a0&#8211; also on GCP. The scripts we [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":5994,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"content-type":"","ocean_post_layout":"","ocean_both_sidebars_style":"","ocean_both_sidebars_content_width":0,"ocean_both_sidebars_sidebars_width":0,"ocean_sidebar":"0","ocean_second_sidebar":"0","ocean_disable_margins":"enable","ocean_add_body_class":"","ocean_shortcode_before_top_bar":"","ocean_shortcode_after_top_bar":"","ocean_shortcode_before_header":"","ocean_shortcode_after_header":"","ocean_has_shortcode":"","ocean_shortcode_after_title":"","ocean_shortcode_before_footer_widgets":"","ocean_shortcode_after_footer_widgets":"","ocean_shortcode_before_footer_bottom":"","ocean_shortcode_after_footer_bottom":"","ocean_display_top_bar":"default","ocean_display_header":"default","ocean_header_style":"","ocean_center_header_left_menu":"0","ocean_custom_header_template":"0","ocean_custom_logo":0,"ocean_custom_retina_logo":0,"ocean_custom_logo_max_width":0,"ocean_custom_logo_tablet_max_width":0,"ocean_custom_logo_mobile_max_width":0,"ocean_custom_logo_max_height":0,"ocean_custom_logo_tablet_max_height":0,"ocean_custom_logo_mobile_max_height":0,"ocean_header_custom_menu":"0","ocean_menu_typo_font_family":"0","ocean_menu_typo_font_subset":"","ocean_menu_typo_font_size":0,"ocean_menu_typo_font_size_tablet":0,"ocean_menu_typo_font_size_mobile":0,"ocean_menu_typo_font_size_unit":"px","ocean_menu_typo_font_weight":"","ocean_menu_typo_font_weight_tablet":"","ocean_menu_typo_font_weight_mobile":"","ocean_menu_typo_transform":"","ocean_menu_typo_transform_tablet":"","ocean_menu_typo_transform_mobile":"","ocean_menu_typo_line_height":0,"ocean_menu_typo_line_height_tablet":0,"ocean_menu_typo_line_height_mobile":0,"ocean_menu_typo_line_height_unit":"","ocean_menu_typo_spacing":0,"ocean_menu_typo_spacing_tablet":0,"ocean_menu_typo_spacing_mobile":0,"ocean_menu_typo_spacing_unit":"","ocean_menu_link_color":"","ocean_menu_link_color_hover":"","ocean_menu_link_color_active":"","ocean_menu_link_background":"","ocean_menu_link_hover_background":"","ocean_menu_link_active_background":"","ocean_menu_social_links_bg":"","ocean_menu_social_hover_links_bg":"","ocean_menu_social_links_color":"","ocean_menu_social_hover_links_color":"","ocean_disable_title":"default","ocean_disable_heading":"default","ocean_post_title":"","ocean_post_subheading":"","ocean_post_title_style":"","ocean_post_title_background_color":"","ocean_post_title_background":0,"ocean_post_title_bg_image_position":"","ocean_post_title_bg_image_attachment":"","ocean_post_title_bg_image_repeat":"","ocean_post_title_bg_image_size":"","ocean_post_title_height":0,"ocean_post_title_bg_overlay":0.5,"ocean_post_title_bg_overlay_color":"","ocean_disable_breadcrumbs":"default","ocean_breadcrumbs_color":"","ocean_breadcrumbs_separator_color":"","ocean_breadcrumbs_links_color":"","ocean_breadcrumbs_links_hover_color":"","ocean_display_footer_widgets":"default","ocean_display_footer_bottom":"default","ocean_custom_footer_template":"0","ocean_post_oembed":"","ocean_post_self_hosted_media":"","ocean_post_video_embed":"","ocean_link_format":"","ocean_link_format_target":"self","ocean_quote_format":"","ocean_quote_format_link":"post","ocean_gallery_link_images":"off","ocean_gallery_id":[],"footnotes":""},"categories":[10,16,11],"tags":[46,47,48],"class_list":["post-2994","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-kakfa","category-mqtt","category-technology","tag-mqtt-broker-kafka","tag-multi-node-mqtt-broker-kafka","tag-resilient-kafka-mqtt","entry","has-media"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>What if the Waterstream node goes down? - Waterstream.io | Simplify MQTT Data Integration<\/title>\n<meta name=\"description\" content=\"How survivor Waterstream nodes (Mqtt Broker) may take over the load of the failed one, keep the cluster running and client sessions available.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/waterstream.io\/it\/2021\/04\/16\/what-if-the-waterstream-node-goes-down\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"What if the Waterstream node goes down? - Waterstream.io | Simplify MQTT Data Integration\" \/>\n<meta property=\"og:description\" content=\"How survivor Waterstream nodes (Mqtt Broker) may take over the load of the failed one, keep the cluster running and client sessions available.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/waterstream.io\/it\/2021\/04\/16\/what-if-the-waterstream-node-goes-down\/\" \/>\n<meta property=\"og:site_name\" content=\"Waterstream.io | Simplify MQTT Data Integration\" \/>\n<meta property=\"article:published_time\" content=\"2021-04-16T06:26:39+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-09-30T12:48:19+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/waterstream.io\/wp-content\/uploads\/2021\/04\/Waterstream-node.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"900\" \/>\n\t<meta property=\"og:image:height\" content=\"600\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Waterstream\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"Waterstream\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/waterstream.io\/it\/2021\/04\/16\/what-if-the-waterstream-node-goes-down\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/waterstream.io\/it\/2021\/04\/16\/what-if-the-waterstream-node-goes-down\/\"},\"author\":{\"name\":\"Waterstream\",\"@id\":\"https:\/\/waterstream.io\/it\/#\/schema\/person\/c8471336c17e2ecc8c51e1d584b3ec47\"},\"headline\":\"What if the Waterstream node goes down?\",\"datePublished\":\"2021-04-16T06:26:39+00:00\",\"dateModified\":\"2025-09-30T12:48:19+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/waterstream.io\/it\/2021\/04\/16\/what-if-the-waterstream-node-goes-down\/\"},\"wordCount\":590,\"publisher\":{\"@id\":\"https:\/\/waterstream.io\/it\/#organization\"},\"image\":{\"@id\":\"https:\/\/waterstream.io\/it\/2021\/04\/16\/what-if-the-waterstream-node-goes-down\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/waterstream.io\/wp-content\/uploads\/2021\/04\/Waterstream-node.jpg\",\"keywords\":[\"Mqtt Broker Kafka\",\"Multi Node Mqtt Broker Kafka\",\"Resilient Kafka Mqtt\"],\"articleSection\":[\"Kafka\",\"MQTT\",\"Technology\"],\"inLanguage\":\"it-IT\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/waterstream.io\/it\/2021\/04\/16\/what-if-the-waterstream-node-goes-down\/\",\"url\":\"https:\/\/waterstream.io\/it\/2021\/04\/16\/what-if-the-waterstream-node-goes-down\/\",\"name\":\"What if the Waterstream node goes down? - Waterstream.io | Simplify MQTT Data Integration\",\"isPartOf\":{\"@id\":\"https:\/\/waterstream.io\/it\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/waterstream.io\/it\/2021\/04\/16\/what-if-the-waterstream-node-goes-down\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/waterstream.io\/it\/2021\/04\/16\/what-if-the-waterstream-node-goes-down\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/waterstream.io\/wp-content\/uploads\/2021\/04\/Waterstream-node.jpg\",\"datePublished\":\"2021-04-16T06:26:39+00:00\",\"dateModified\":\"2025-09-30T12:48:19+00:00\",\"description\":\"How survivor Waterstream nodes (Mqtt Broker) may take over the load of the failed one, keep the cluster running and client sessions available.\",\"breadcrumb\":{\"@id\":\"https:\/\/waterstream.io\/it\/2021\/04\/16\/what-if-the-waterstream-node-goes-down\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/waterstream.io\/it\/2021\/04\/16\/what-if-the-waterstream-node-goes-down\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/waterstream.io\/it\/2021\/04\/16\/what-if-the-waterstream-node-goes-down\/#primaryimage\",\"url\":\"https:\/\/waterstream.io\/wp-content\/uploads\/2021\/04\/Waterstream-node.jpg\",\"contentUrl\":\"https:\/\/waterstream.io\/wp-content\/uploads\/2021\/04\/Waterstream-node.jpg\",\"width\":900,\"height\":600},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/waterstream.io\/it\/2021\/04\/16\/what-if-the-waterstream-node-goes-down\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/waterstream.io\/it\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"What if the Waterstream node goes down?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/waterstream.io\/it\/#website\",\"url\":\"https:\/\/waterstream.io\/it\/\",\"name\":\"Waterstream.io | Simplify MQTT Data Integration\",\"description\":\"High performance MQTT Broker\",\"publisher\":{\"@id\":\"https:\/\/waterstream.io\/it\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/waterstream.io\/it\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/waterstream.io\/it\/#organization\",\"name\":\"Waterstream.io | Simplify MQTT Data Integration\",\"url\":\"https:\/\/waterstream.io\/it\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/waterstream.io\/it\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/waterstream.io\/wp-content\/uploads\/2022\/05\/WaterStream-Logo-Color.png\",\"contentUrl\":\"https:\/\/waterstream.io\/wp-content\/uploads\/2022\/05\/WaterStream-Logo-Color.png\",\"width\":500,\"height\":117,\"caption\":\"Waterstream.io | Simplify MQTT Data Integration\"},\"image\":{\"@id\":\"https:\/\/waterstream.io\/it\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/waterstream.io\/it\/#\/schema\/person\/c8471336c17e2ecc8c51e1d584b3ec47\",\"name\":\"Waterstream\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/774b720bde6b29089269455bc31ecae3028eec39cff2333372e13d755f2f5391?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/774b720bde6b29089269455bc31ecae3028eec39cff2333372e13d755f2f5391?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/774b720bde6b29089269455bc31ecae3028eec39cff2333372e13d755f2f5391?s=96&d=mm&r=g\",\"caption\":\"Waterstream\"},\"url\":\"https:\/\/waterstream.io\/it\/author\/waterstream\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"What if the Waterstream node goes down? - Waterstream.io | Simplify MQTT Data Integration","description":"How survivor Waterstream nodes (Mqtt Broker) may take over the load of the failed one, keep the cluster running and client sessions available.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/waterstream.io\/it\/2021\/04\/16\/what-if-the-waterstream-node-goes-down\/","og_locale":"it_IT","og_type":"article","og_title":"What if the Waterstream node goes down? - Waterstream.io | Simplify MQTT Data Integration","og_description":"How survivor Waterstream nodes (Mqtt Broker) may take over the load of the failed one, keep the cluster running and client sessions available.","og_url":"https:\/\/waterstream.io\/it\/2021\/04\/16\/what-if-the-waterstream-node-goes-down\/","og_site_name":"Waterstream.io | Simplify MQTT Data Integration","article_published_time":"2021-04-16T06:26:39+00:00","article_modified_time":"2025-09-30T12:48:19+00:00","og_image":[{"width":900,"height":600,"url":"http:\/\/waterstream.io\/wp-content\/uploads\/2021\/04\/Waterstream-node.jpg","type":"image\/jpeg"}],"author":"Waterstream","twitter_card":"summary_large_image","twitter_misc":{"Scritto da":"Waterstream","Tempo di lettura stimato":"4 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/waterstream.io\/it\/2021\/04\/16\/what-if-the-waterstream-node-goes-down\/#article","isPartOf":{"@id":"https:\/\/waterstream.io\/it\/2021\/04\/16\/what-if-the-waterstream-node-goes-down\/"},"author":{"name":"Waterstream","@id":"https:\/\/waterstream.io\/it\/#\/schema\/person\/c8471336c17e2ecc8c51e1d584b3ec47"},"headline":"What if the Waterstream node goes down?","datePublished":"2021-04-16T06:26:39+00:00","dateModified":"2025-09-30T12:48:19+00:00","mainEntityOfPage":{"@id":"https:\/\/waterstream.io\/it\/2021\/04\/16\/what-if-the-waterstream-node-goes-down\/"},"wordCount":590,"publisher":{"@id":"https:\/\/waterstream.io\/it\/#organization"},"image":{"@id":"https:\/\/waterstream.io\/it\/2021\/04\/16\/what-if-the-waterstream-node-goes-down\/#primaryimage"},"thumbnailUrl":"https:\/\/waterstream.io\/wp-content\/uploads\/2021\/04\/Waterstream-node.jpg","keywords":["Mqtt Broker Kafka","Multi Node Mqtt Broker Kafka","Resilient Kafka Mqtt"],"articleSection":["Kafka","MQTT","Technology"],"inLanguage":"it-IT"},{"@type":"WebPage","@id":"https:\/\/waterstream.io\/it\/2021\/04\/16\/what-if-the-waterstream-node-goes-down\/","url":"https:\/\/waterstream.io\/it\/2021\/04\/16\/what-if-the-waterstream-node-goes-down\/","name":"What if the Waterstream node goes down? - Waterstream.io | Simplify MQTT Data Integration","isPartOf":{"@id":"https:\/\/waterstream.io\/it\/#website"},"primaryImageOfPage":{"@id":"https:\/\/waterstream.io\/it\/2021\/04\/16\/what-if-the-waterstream-node-goes-down\/#primaryimage"},"image":{"@id":"https:\/\/waterstream.io\/it\/2021\/04\/16\/what-if-the-waterstream-node-goes-down\/#primaryimage"},"thumbnailUrl":"https:\/\/waterstream.io\/wp-content\/uploads\/2021\/04\/Waterstream-node.jpg","datePublished":"2021-04-16T06:26:39+00:00","dateModified":"2025-09-30T12:48:19+00:00","description":"How survivor Waterstream nodes (Mqtt Broker) may take over the load of the failed one, keep the cluster running and client sessions available.","breadcrumb":{"@id":"https:\/\/waterstream.io\/it\/2021\/04\/16\/what-if-the-waterstream-node-goes-down\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/waterstream.io\/it\/2021\/04\/16\/what-if-the-waterstream-node-goes-down\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/waterstream.io\/it\/2021\/04\/16\/what-if-the-waterstream-node-goes-down\/#primaryimage","url":"https:\/\/waterstream.io\/wp-content\/uploads\/2021\/04\/Waterstream-node.jpg","contentUrl":"https:\/\/waterstream.io\/wp-content\/uploads\/2021\/04\/Waterstream-node.jpg","width":900,"height":600},{"@type":"BreadcrumbList","@id":"https:\/\/waterstream.io\/it\/2021\/04\/16\/what-if-the-waterstream-node-goes-down\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/waterstream.io\/it\/"},{"@type":"ListItem","position":2,"name":"What if the Waterstream node goes down?"}]},{"@type":"WebSite","@id":"https:\/\/waterstream.io\/it\/#website","url":"https:\/\/waterstream.io\/it\/","name":"Waterstream.io | Simplify MQTT Data Integration","description":"High performance MQTT Broker","publisher":{"@id":"https:\/\/waterstream.io\/it\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/waterstream.io\/it\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Organization","@id":"https:\/\/waterstream.io\/it\/#organization","name":"Waterstream.io | Simplify MQTT Data Integration","url":"https:\/\/waterstream.io\/it\/","logo":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/waterstream.io\/it\/#\/schema\/logo\/image\/","url":"https:\/\/waterstream.io\/wp-content\/uploads\/2022\/05\/WaterStream-Logo-Color.png","contentUrl":"https:\/\/waterstream.io\/wp-content\/uploads\/2022\/05\/WaterStream-Logo-Color.png","width":500,"height":117,"caption":"Waterstream.io | Simplify MQTT Data Integration"},"image":{"@id":"https:\/\/waterstream.io\/it\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/waterstream.io\/it\/#\/schema\/person\/c8471336c17e2ecc8c51e1d584b3ec47","name":"Waterstream","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/secure.gravatar.com\/avatar\/774b720bde6b29089269455bc31ecae3028eec39cff2333372e13d755f2f5391?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/774b720bde6b29089269455bc31ecae3028eec39cff2333372e13d755f2f5391?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/774b720bde6b29089269455bc31ecae3028eec39cff2333372e13d755f2f5391?s=96&d=mm&r=g","caption":"Waterstream"},"url":"https:\/\/waterstream.io\/it\/author\/waterstream\/"}]}},"_links":{"self":[{"href":"https:\/\/waterstream.io\/it\/wp-json\/wp\/v2\/posts\/2994","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/waterstream.io\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/waterstream.io\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/waterstream.io\/it\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/waterstream.io\/it\/wp-json\/wp\/v2\/comments?post=2994"}],"version-history":[{"count":0,"href":"https:\/\/waterstream.io\/it\/wp-json\/wp\/v2\/posts\/2994\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/waterstream.io\/it\/wp-json\/wp\/v2\/media\/5994"}],"wp:attachment":[{"href":"https:\/\/waterstream.io\/it\/wp-json\/wp\/v2\/media?parent=2994"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/waterstream.io\/it\/wp-json\/wp\/v2\/categories?post=2994"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/waterstream.io\/it\/wp-json\/wp\/v2\/tags?post=2994"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}