{"version":"1.0","provider_name":"Service  Engineering (ICCLab &amp; SPLab)","provider_url":"https:\/\/blog.zhaw.ch\/icclab","author_name":"icclab","author_url":"https:\/\/blog.zhaw.ch\/icclab\/author\/icclab\/","title":"Making Tools Robust and Breaking Robust Tools","type":"rich","width":600,"height":338,"html":"<blockquote class=\"wp-embedded-content\" data-secret=\"zRXz5Ia2D4\"><a href=\"https:\/\/blog.zhaw.ch\/icclab\/making-tools-robust-and-breaking-robust-tools\/\">Making Tools Robust and Breaking Robust Tools<\/a><\/blockquote><iframe sandbox=\"allow-scripts\" security=\"restricted\" src=\"https:\/\/blog.zhaw.ch\/icclab\/making-tools-robust-and-breaking-robust-tools\/embed\/#?secret=zRXz5Ia2D4\" width=\"600\" height=\"338\" title=\"&#8220;Making Tools Robust and Breaking Robust Tools&#8221; &#8212; Service  Engineering (ICCLab &amp; SPLab)\" data-secret=\"zRXz5Ia2D4\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" class=\"wp-embedded-content\"><\/iframe><script>\n\/*! This file is auto-generated *\/\n!function(d,l){\"use strict\";l.querySelector&&d.addEventListener&&\"undefined\"!=typeof URL&&(d.wp=d.wp||{},d.wp.receiveEmbedMessage||(d.wp.receiveEmbedMessage=function(e){var t=e.data;if((t||t.secret||t.message||t.value)&&!\/[^a-zA-Z0-9]\/.test(t.secret)){for(var s,r,n,a=l.querySelectorAll('iframe[data-secret=\"'+t.secret+'\"]'),o=l.querySelectorAll('blockquote[data-secret=\"'+t.secret+'\"]'),c=new RegExp(\"^https?:$\",\"i\"),i=0;i<o.length;i++)o[i].style.display=\"none\";for(i=0;i<a.length;i++)s=a[i],e.source===s.contentWindow&&(s.removeAttribute(\"style\"),\"height\"===t.message?(1e3<(r=parseInt(t.value,10))?r=1e3:~~r<200&&(r=200),s.height=r):\"link\"===t.message&&(r=new URL(s.getAttribute(\"src\")),n=new URL(t.value),c.test(n.protocol))&&n.host===r.host&&l.activeElement===s&&(d.top.location.href=t.value))}},d.addEventListener(\"message\",d.wp.receiveEmbedMessage,!1),l.addEventListener(\"DOMContentLoaded\",function(){for(var e,t,s=l.querySelectorAll(\"iframe.wp-embedded-content\"),r=0;r<s.length;r++)(t=(e=s[r]).getAttribute(\"data-secret\"))||(t=Math.random().toString(36).substring(2,12),e.src+=\"#?secret=\"+t,e.setAttribute(\"data-secret\",t)),e.contentWindow.postMessage({message:\"ready\",secret:t},\"*\")},!1)))}(window,document);\n\/\/# sourceURL=https:\/\/blog.zhaw.ch\/icclab\/wp-includes\/js\/wp-embed.min.js\n<\/script>\n","description":"Cloud services are meant to be elastically scalable and robust against all kinds of failures. The core services are very mature nowadays, but the tools which glue them together are often in need of quality improvements. Two common risks in networked environments are (1) unavailability and (2) slowness of services. The first risk is easier [&hellip;]","thumbnail_url":"https:\/\/blog.zhaw.ch\/icclab\/files\/2016\/05\/awsretry-exp-300x226.png"}