diff --git a/src/data/roadmaps/backend/backend-beginner.json b/src/data/roadmaps/backend/backend-beginner.json new file mode 100644 index 000000000..3abf35c94 --- /dev/null +++ b/src/data/roadmaps/backend/backend-beginner.json @@ -0,0 +1,3214 @@ +{ + "mockup": { + "controls": { + "control": [ + { + "ID": "2155", + "typeID": "Arrow", + "zOrder": "18", + "w": "1", + "h": "177", + "measuredW": "150", + "measuredH": "100", + "x": "1251", + "y": "846", + "properties": { + "curvature": "-1", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "color": "3700253", + "p0": { + "x": 1.0826222816126574, + "y": -0.00765522788196904 + }, + "p1": { + "x": 0.46737830066706726, + "y": -0.003606051439574667 + }, + "p2": { + "x": 1.0826222816126574, + "y": 176.9643106904665 + } + } + }, + { + "ID": "2168", + "typeID": "Arrow", + "zOrder": "19", + "w": "139", + "h": "27", + "measuredW": "150", + "measuredH": "100", + "x": "1019", + "y": "1491", + "properties": { + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": -0.06462658260011267, + "y": 27.019432060373674 + }, + "p1": { + "x": 0.4665558798140599, + "y": 0.07029751256299145 + }, + "p2": { + "x": 139.27696294456564, + "y": 0.2229725359186432 + } + } + }, + { + "ID": "2169", + "typeID": "Arrow", + "zOrder": "20", + "w": "154", + "h": "18", + "measuredW": "150", + "measuredH": "100", + "x": "1015", + "y": "1462", + "properties": { + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": -0.08409551126828774, + "y": -0.25313294098191363 + }, + "p1": { + "x": 0.4534602255665107, + "y": -0.06413455828959744 + }, + "p2": { + "x": 153.99554675434774, + "y": 14.484919797468365 + } + } + }, + { + "ID": "2172", + "typeID": "Arrow", + "zOrder": "21", + "w": "107", + "h": "1", + "measuredW": "150", + "measuredH": "100", + "x": "1371", + "y": "1360", + "properties": { + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": 0, + "y": -0.5 + }, + "p1": { + "x": 0.4734542725983134, + "y": -0.00011162392477927755 + }, + "p2": { + "x": 107.31478788338131, + "y": -0.5 + }, + "stroke": "dotted" + } + }, + { + "ID": "2180", + "typeID": "Arrow", + "zOrder": "22", + "w": "144", + "h": "1", + "measuredW": "150", + "measuredH": "100", + "x": "1038", + "y": "969", + "properties": { + "color": "2848996", + "curvature": "-1", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": -0.24980034602958767, + "y": 0.04191001796402816 + }, + "p1": { + "x": 0.49999999999999994, + "y": 0 + }, + "p2": { + "x": 143.51622394886613, + "y": 0.04191001796402816 + } + } + }, + { + "ID": "2185", + "typeID": "__group__", + "zOrder": "23", + "measuredW": "169", + "measuredH": "40", + "w": "169", + "h": "40", + "x": "861", + "y": "1596", + "properties": { + "controlName": "104-apis:authentication:jwt" + }, + "children": { + "controls": { + "control": [ + { + "ID": "3", + "typeID": "Canvas", + "zOrder": "0", + "w": "169", + "h": "40", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "4", + "typeID": "Label", + "zOrder": "1", + "measuredW": "35", + "measuredH": "25", + "x": "67", + "y": "7", + "properties": { + "text": "JWT", + "size": "17" + } + } + ] + } + } + }, + { + "ID": "2188", + "typeID": "__group__", + "zOrder": "24", + "measuredW": "269", + "measuredH": "50", + "w": "269", + "h": "50", + "x": "1148", + "y": "1335", + "properties": { + "controlName": "106-relational-databases" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "269", + "h": "50", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "165", + "measuredH": "25", + "x": "52", + "y": "13", + "properties": { + "size": "17", + "text": "Relational Databases" + } + } + ] + } + } + }, + { + "ID": "2189", + "typeID": "__group__", + "zOrder": "25", + "measuredW": "169", + "measuredH": "40", + "w": "169", + "h": "40", + "x": "1471", + "y": "1340", + "properties": { + "controlName": "100-relational-databases:postgresql" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "169", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "96", + "measuredW": "93", + "measuredH": "25", + "x": "37", + "y": "7", + "properties": { + "size": "17", + "text": "PostgreSQL" + } + } + ] + } + } + }, + { + "ID": "2191", + "typeID": "__group__", + "zOrder": "26", + "measuredW": "211", + "measuredH": "50", + "w": "211", + "h": "50", + "x": "1146", + "y": "1757", + "properties": { + "controlName": "108-more-about-databases" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "211", + "h": "50", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "176", + "measuredH": "25", + "x": "18", + "y": "13", + "properties": { + "text": "More about Databases", + "size": "17" + } + } + ] + } + } + }, + { + "ID": "2192", + "typeID": "__group__", + "zOrder": "27", + "measuredW": "206", + "measuredH": "40", + "w": "206", + "h": "40", + "x": "1470", + "y": "1780", + "properties": { + "controlName": "102-more-about-databases:transactions" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "206", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "105", + "measuredW": "99", + "measuredH": "25", + "x": "50", + "y": "7", + "properties": { + "size": "17", + "text": "Transactions" + } + } + ] + } + } + }, + { + "ID": "2193", + "typeID": "__group__", + "zOrder": "28", + "measuredW": "206", + "measuredH": "40", + "w": "206", + "h": "40", + "x": "1470", + "y": "1824", + "properties": { + "controlName": "103-more-about-databases:n-plus-one-problem" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "206", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "99", + "measuredH": "25", + "x": "53", + "y": "7", + "properties": { + "text": "N+1 Problem", + "size": "17" + } + } + ] + } + } + }, + { + "ID": "2194", + "typeID": "__group__", + "zOrder": "29", + "measuredW": "205", + "measuredH": "40", + "w": "205", + "h": "40", + "x": "1471", + "y": "1692", + "properties": { + "controlName": "100-scaling-databases:database-indexes" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "205", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "140", + "measuredH": "25", + "x": "34", + "y": "7", + "properties": { + "size": "17", + "text": "Database Indexes" + } + } + ] + } + } + }, + { + "ID": "2195", + "typeID": "__group__", + "zOrder": "30", + "measuredW": "273", + "measuredH": "50", + "w": "273", + "h": "50", + "x": "1145", + "y": "1460", + "properties": { + "controlName": "109-apis" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "273", + "h": "50", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "133", + "measuredH": "25", + "x": "70", + "y": "13", + "properties": { + "text": "Learn about APIs", + "size": "17" + } + } + ] + } + } + }, + { + "ID": "2196", + "typeID": "__group__", + "zOrder": "31", + "measuredW": "166", + "measuredH": "40", + "w": "166", + "h": "40", + "x": "864", + "y": "1447", + "properties": { + "controlName": "100-apis:rest" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "166", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "49", + "measuredW": "44", + "measuredH": "25", + "x": "58", + "y": "7", + "properties": { + "size": "17", + "text": "REST" + } + } + ] + } + } + }, + { + "ID": "2197", + "typeID": "__group__", + "zOrder": "32", + "measuredW": "167", + "measuredH": "40", + "w": "167", + "h": "40", + "x": "863", + "y": "1492", + "properties": { + "controlName": "101-apis:json-apis" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "167", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "90", + "measuredW": "85", + "measuredH": "25", + "x": "39", + "y": "7", + "properties": { + "size": "17", + "text": "JSON APIs" + } + } + ] + } + } + }, + { + "ID": "2198", + "typeID": "__group__", + "zOrder": "33", + "measuredW": "170", + "measuredH": "50", + "w": "170", + "h": "50", + "x": "861", + "y": "1549", + "properties": { + "controlName": "106-apis:authentication" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "170", + "h": "50", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0" + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "111", + "measuredW": "111", + "measuredH": "25", + "x": "29", + "y": "12", + "properties": { + "size": "17", + "text": "Authentication" + } + } + ] + } + } + }, + { + "ID": "2199", + "typeID": "Label", + "zOrder": "34", + "measuredW": "128", + "measuredH": "40", + "x": "1200", + "y": "789", + "properties": { + "size": "32", + "text": "Backend" + } + }, + { + "ID": "2200", + "typeID": "Arrow", + "zOrder": "35", + "w": "1", + "h": "75", + "measuredW": "150", + "measuredH": "100", + "x": "1251", + "y": "702", + "properties": { + "curvature": "-1", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 0.43268541466795796, + "y": -0.4292144763719534 + }, + "p1": { + "x": 0.4673783006670677, + "y": -0.0036060514395746665 + }, + "p2": { + "x": 0.08850738176079176, + "y": 74.41806720423438 + }, + "color": "3700253" + } + }, + { + "ID": "2201", + "typeID": "__group__", + "zOrder": "36", + "measuredW": "350", + "measuredH": "141", + "w": "350", + "h": "141", + "x": "1473", + "y": "670", + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "350", + "h": "141", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0" + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "314", + "measuredH": "25", + "x": "14", + "y": "17", + "properties": { + "size": "17", + "text": "Find the detailed version of this roadmap" + } + }, + { + "ID": "2", + "typeID": "Label", + "zOrder": "2", + "measuredW": "319", + "measuredH": "25", + "x": "14", + "y": "45", + "properties": { + "size": "17", + "text": "along with resources and other roadmaps" + } + }, + { + "ID": "3", + "typeID": "__group__", + "zOrder": "3", + "measuredW": "320", + "measuredH": "45", + "w": "320", + "h": "45", + "x": "15", + "y": "81", + "properties": { + "controlName": "ext_link:roadmap.sh" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "320", + "h": "45", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "borderColor": "4273622", + "color": "4273622" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "105", + "measuredH": "28", + "x": "141", + "y": "8", + "properties": { + "color": "16777215", + "size": "20", + "text": "roadmap.sh" + } + }, + { + "ID": "2", + "typeID": "Label", + "zOrder": "2", + "measuredW": "45", + "measuredH": "28", + "x": "66", + "y": "8", + "properties": { + "color": "16777215", + "size": "20", + "text": "https" + } + }, + { + "ID": "3", + "typeID": "Label", + "zOrder": "3", + "measuredW": "5", + "measuredH": "28", + "x": "113", + "y": "8", + "properties": { + "bold": "true", + "color": "16777215", + "size": "20", + "text": ":" + } + }, + { + "ID": "4", + "typeID": "Label", + "zOrder": "4", + "measuredW": "10", + "measuredH": "28", + "x": "120", + "y": "9", + "properties": { + "color": "16777215", + "size": "20", + "text": "/" + } + }, + { + "ID": "5", + "typeID": "Label", + "zOrder": "5", + "measuredW": "10", + "measuredH": "28", + "x": "128", + "y": "9", + "properties": { + "color": "16777215", + "size": "20", + "text": "/" + } + } + ] + } + } + } + ] + } + } + }, + { + "ID": "2203", + "typeID": "__group__", + "zOrder": "37", + "measuredW": "144", + "measuredH": "40", + "w": "144", + "h": "40", + "x": "915", + "y": "993", + "properties": { + "controlName": "100-learn-a-language:go" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "136", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "8", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "26", + "measuredW": "23", + "measuredH": "25", + "x": "63", + "y": "7", + "properties": { + "size": "17", + "text": "Go" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "4", + "typeID": "Icon", + "zOrder": "4", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "3700253", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "2204", + "typeID": "__group__", + "zOrder": "38", + "measuredW": "272", + "measuredH": "50", + "w": "272", + "h": "50", + "x": "1147", + "y": "944", + "properties": { + "controlName": "103-learn-a-language" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "272", + "h": "50", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "141", + "measuredH": "25", + "x": "65", + "y": "13", + "properties": { + "text": "Learn a Language", + "size": "17" + } + } + ] + } + } + }, + { + "ID": "2205", + "typeID": "__group__", + "zOrder": "39", + "measuredW": "146", + "measuredH": "40", + "w": "146", + "h": "40", + "x": "913", + "y": "903", + "properties": { + "controlName": "105-learn-a-language:javascript" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "136", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "10", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "85", + "measuredW": "81", + "measuredH": "25", + "x": "37", + "y": "8", + "properties": { + "size": "17", + "text": "JavaScript" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "4", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "icon": { + "ID": "check-circle", + "size": "small" + }, + "color": "10027263" + } + } + ] + } + } + }, + { + "ID": "2206", + "typeID": "__group__", + "zOrder": "40", + "measuredW": "145", + "measuredH": "40", + "w": "145", + "h": "40", + "x": "914", + "y": "948", + "properties": { + "controlName": "106-learn-a-language:python" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "136", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "9", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "56", + "measuredW": "53", + "measuredH": "25", + "x": "49", + "y": "8", + "properties": { + "size": "17", + "text": "Python" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "4", + "typeID": "Icon", + "zOrder": "4", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "3700253", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "2211", + "typeID": "__group__", + "zOrder": "41", + "measuredW": "205", + "measuredH": "40", + "w": "205", + "h": "40", + "x": "1470", + "y": "1736", + "properties": { + "controlName": "100-more-about-databases:orms" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "205", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "49", + "measuredW": "49", + "measuredH": "25", + "x": "78", + "y": "7", + "properties": { + "size": "17", + "text": "ORMs" + } + } + ] + } + } + }, + { + "ID": "2221", + "typeID": "Arrow", + "zOrder": "42", + "w": "3", + "h": "1", + "measuredW": "150", + "measuredH": "100", + "x": "1848", + "y": "829", + "properties": { + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "color": "16777215", + "p0": { + "x": 0.14652915468354877, + "y": 0.452028801972574 + }, + "p1": { + "x": 0.47345427259831346, + "y": -0.00011162392477928299 + }, + "p2": { + "x": 2.7298768229543384, + "y": 0.452028801972574 + } + } + }, + { + "ID": "2222", + "typeID": "Arrow", + "zOrder": "43", + "w": "3", + "h": "3", + "measuredW": "150", + "measuredH": "100", + "x": "648", + "y": "882", + "properties": { + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "color": "16777215", + "p0": { + "x": 0.2658611453201729, + "y": 2.452028801972574 + }, + "p1": { + "x": 0.4734542725983134, + "y": -0.00011162392477936523 + }, + "p2": { + "x": 3.1065906667259924, + "y": -0.38870071943324547 + } + } + }, + { + "ID": "2223", + "typeID": "Arrow", + "zOrder": "44", + "w": "3", + "h": "1", + "measuredW": "150", + "measuredH": "100", + "x": "1369", + "y": "637", + "properties": { + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "color": "16777215", + "p0": { + "x": 0.14652915468354877, + "y": 0.452028801972574 + }, + "p1": { + "x": 0.47345427259831346, + "y": -0.00011162392477928299 + }, + "p2": { + "x": 2.7298768229543384, + "y": 0.452028801972574 + } + } + }, + { + "ID": "2224", + "typeID": "Arrow", + "zOrder": "17", + "w": "114", + "h": "32", + "measuredW": "150", + "measuredH": "100", + "x": "1053", + "y": "923", + "properties": { + "color": "2848996", + "curvature": "-1", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": -0.1257521407827653, + "y": -0.30013658969107837 + }, + "p1": { + "x": 0.41833810888252165, + "y": -0.1060171919770771 + }, + "p2": { + "x": 114.1798056113546, + "y": 31.45140723034706 + } + } + }, + { + "ID": "2225", + "typeID": "Arrow", + "zOrder": "16", + "w": "117", + "h": "39", + "measuredW": "150", + "measuredH": "100", + "x": "1054", + "y": "980", + "properties": { + "color": "2848996", + "curvature": "-1", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 0.14430961201878745, + "y": 39.224556623224885 + }, + "p1": { + "x": 0.4389989572471317, + "y": 0.10010427528675775 + }, + "p2": { + "x": 116.98999086975914, + "y": -0.14735771362245487 + } + } + }, + { + "ID": "2226", + "typeID": "Label", + "zOrder": "45", + "measuredW": "348", + "measuredH": "26", + "x": "667", + "y": "1066", + "properties": { + "color": "4985136", + "size": "18", + "text": "When you are following this roadmap, make" + } + }, + { + "ID": "2227", + "typeID": "Label", + "zOrder": "46", + "measuredW": "338", + "measuredH": "26", + "x": "667", + "y": "1099", + "properties": { + "color": "4985136", + "size": "18", + "text": "sure to build as many projects as possible" + } + }, + { + "ID": "2228", + "typeID": "Label", + "zOrder": "47", + "measuredW": "145", + "measuredH": "32", + "x": "667", + "y": "1022", + "properties": { + "color": "4985136", + "size": "24", + "text": "Important Tip" + } + }, + { + "ID": "2229", + "typeID": "Label", + "zOrder": "48", + "measuredW": "242", + "measuredH": "26", + "x": "667", + "y": "1129", + "properties": { + "color": "4985136", + "size": "18", + "text": "for each node of the roadmap" + } + }, + { + "ID": "2230", + "typeID": "Label", + "zOrder": "49", + "measuredW": "357", + "measuredH": "26", + "x": "1473", + "y": "852", + "properties": { + "color": "4985136", + "size": "18", + "text": "If you are a frontend developer, jumping into" + } + }, + { + "ID": "2231", + "typeID": "Label", + "zOrder": "50", + "measuredW": "348", + "measuredH": "26", + "x": "1473", + "y": "882", + "properties": { + "color": "4985136", + "size": "18", + "text": "backend development, I would recommend" + } + }, + { + "ID": "2232", + "typeID": "Label", + "zOrder": "51", + "measuredW": "319", + "measuredH": "26", + "x": "1473", + "y": "912", + "properties": { + "color": "4985136", + "size": "18", + "text": "picking JavaScript and learning Node.js" + } + }, + { + "ID": "2233", + "typeID": "Label", + "zOrder": "52", + "measuredW": "353", + "measuredH": "26", + "x": "1473", + "y": "942", + "properties": { + "color": "4985136", + "size": "18", + "text": "to get up to speed. Alternatively, Python and" + } + }, + { + "ID": "2234", + "typeID": "Label", + "zOrder": "53", + "measuredW": "208", + "measuredH": "26", + "x": "1473", + "y": "972", + "properties": { + "color": "4985136", + "size": "18", + "text": "Go are also good options." + } + }, + { + "ID": "2235", + "typeID": "Label", + "zOrder": "54", + "measuredW": "347", + "measuredH": "26", + "x": "1473", + "y": "1013", + "properties": { + "size": "18", + "text": "Pick any language, learn the language, and", + "color": "3700253" + } + }, + { + "ID": "2236", + "typeID": "Label", + "zOrder": "55", + "measuredW": "355", + "measuredH": "26", + "x": "1473", + "y": "1043", + "properties": { + "size": "18", + "color": "3700253", + "text": "build some CLI applications to practice your" + } + }, + { + "ID": "2237", + "typeID": "Label", + "zOrder": "56", + "measuredW": "223", + "measuredH": "26", + "x": "1473", + "y": "1073", + "properties": { + "size": "18", + "color": "3700253", + "text": "knowledge of the language." + } + }, + { + "ID": "2238", + "typeID": "Arrow", + "zOrder": "57", + "w": "116", + "h": "1", + "measuredW": "150", + "measuredH": "100", + "x": "1071", + "y": "1179", + "properties": { + "color": "2848996", + "curvature": "-1", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": -0.17790705272341256, + "y": 0.4387080768251508 + }, + "p1": { + "x": 0.5, + "y": 0 + }, + "p2": { + "x": 115.75019965397041, + "y": 0.43870807682526447 + } + } + }, + { + "ID": "2239", + "typeID": "__group__", + "zOrder": "58", + "measuredW": "95", + "measuredH": "50", + "w": "95", + "h": "50", + "x": "1000", + "y": "1156", + "properties": { + "controlName": "100-version-control-systems:git" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "95", + "h": "50", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "22", + "measuredH": "25", + "x": "37", + "y": "12", + "properties": { + "size": "17", + "text": "Git" + } + } + ] + } + } + }, + { + "ID": "2240", + "typeID": "__group__", + "zOrder": "59", + "measuredW": "275", + "measuredH": "50", + "w": "275", + "h": "50", + "x": "1147", + "y": "1155", + "properties": { + "controlName": "104-version-control-systems" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "275", + "h": "50", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "186", + "measuredH": "25", + "x": "45", + "y": "12", + "properties": { + "text": "Version Control Systems", + "size": "17" + } + } + ] + } + } + }, + { + "ID": "2241", + "typeID": "Arrow", + "zOrder": "15", + "w": "1", + "h": "137", + "measuredW": "150", + "measuredH": "100", + "x": "1251", + "y": "1034", + "properties": { + "curvature": "-1", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "p0": { + "x": 0.08262228161265739, + "y": 0.45817900313909377 + }, + "p1": { + "x": 0.4673783006670674, + "y": -0.0036060514395746678 + }, + "p2": { + "x": 0.08262228161265739, + "y": 137.67519270679327 + } + } + }, + { + "ID": "2242", + "typeID": "Label", + "zOrder": "60", + "measuredW": "278", + "measuredH": "26", + "x": "1473", + "y": "1143", + "properties": { + "color": "4985136", + "size": "18", + "text": "Create your GitHub profile. Publish" + } + }, + { + "ID": "2243", + "typeID": "Label", + "zOrder": "61", + "measuredW": "300", + "measuredH": "26", + "x": "1473", + "y": "1173", + "properties": { + "color": "4985136", + "size": "18", + "text": "the projects that you have developed" + } + }, + { + "ID": "2244", + "typeID": "Label", + "zOrder": "62", + "measuredW": "229", + "measuredH": "26", + "x": "1473", + "y": "1203", + "properties": { + "color": "4985136", + "size": "18", + "text": "so far to your GitHub profile." + } + }, + { + "ID": "2245", + "typeID": "Label", + "zOrder": "63", + "measuredW": "249", + "measuredH": "26", + "x": "1473", + "y": "1238", + "properties": { + "size": "18", + "text": "Use git for your future projects.", + "color": "10027263" + } + }, + { + "ID": "2247", + "typeID": "Label", + "zOrder": "64", + "measuredW": "420", + "measuredH": "26", + "x": "665", + "y": "1297", + "properties": { + "color": "4985136", + "size": "18", + "text": "Learn about the relational databases, normalization," + } + }, + { + "ID": "2248", + "typeID": "Label", + "zOrder": "65", + "measuredW": "418", + "measuredH": "26", + "x": "665", + "y": "1324", + "properties": { + "color": "4985136", + "size": "18", + "text": "learn SQL, db migrations, indexes and performance." + } + }, + { + "ID": "2250", + "typeID": "Label", + "zOrder": "66", + "measuredW": "386", + "measuredH": "26", + "x": "665", + "y": "1358", + "properties": { + "size": "18", + "text": "Make some CLI application that uses database.", + "color": "11820806" + } + }, + { + "ID": "2251", + "typeID": "Arrow", + "zOrder": "14", + "w": "1", + "h": "104", + "measuredW": "150", + "measuredH": "100", + "x": "1251", + "y": "1302", + "properties": { + "curvature": "-1", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "color": "11820806", + "p0": { + "x": 0.08262228161265739, + "y": 0.45817900313909377 + }, + "p1": { + "x": 0.4673783006670672, + "y": -0.003606051439574666 + }, + "p2": { + "x": 0.08262228161265739, + "y": 104.8141250338856 + } + } + }, + { + "ID": "2253", + "typeID": "__group__", + "zOrder": "67", + "measuredW": "98", + "measuredH": "49", + "w": "98", + "h": "49", + "x": "997", + "y": "1212", + "properties": { + "controlName": "100-repo-hosting-services:github" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "98", + "h": "49", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "54", + "measuredH": "25", + "x": "27", + "y": "12", + "properties": { + "text": "GitHub", + "size": "17" + } + } + ] + } + } + }, + { + "ID": "2254", + "typeID": "__group__", + "zOrder": "68", + "measuredW": "275", + "measuredH": "50", + "w": "275", + "h": "50", + "x": "1149", + "y": "1210", + "properties": { + "controlName": "105-repo-hosting-services" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "275", + "h": "50", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "172", + "measuredH": "25", + "x": "52", + "y": "12", + "properties": { + "text": "Repo hosting services", + "size": "17" + } + } + ] + } + } + }, + { + "ID": "2255", + "typeID": "Arrow", + "zOrder": "13", + "w": "116", + "h": "1", + "measuredW": "150", + "measuredH": "100", + "x": "1071", + "y": "1237", + "properties": { + "color": "2848996", + "curvature": "-1", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": -0.17790705272341256, + "y": 0.4387080768251508 + }, + "p1": { + "x": 0.5, + "y": 0 + }, + "p2": { + "x": 115.75019965397041, + "y": 0.43870807682526447 + } + } + }, + { + "ID": "2256", + "typeID": "Arrow", + "zOrder": "12", + "w": "1", + "h": "58", + "measuredW": "150", + "measuredH": "100", + "x": "1251", + "y": "1235", + "properties": { + "curvature": "-1", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "p0": { + "x": 0.08262228161265739, + "y": 0.45817900313909377 + }, + "p1": { + "x": 0.4673783006670675, + "y": -0.0036060514395746678 + }, + "p2": { + "x": 0.08262228161265739, + "y": 58.599083543063216 + } + } + }, + { + "ID": "2265", + "typeID": "Arrow", + "zOrder": "11", + "w": "1", + "h": "113", + "measuredW": "150", + "measuredH": "100", + "x": "1251", + "y": "1418", + "properties": { + "curvature": "-1", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "p0": { + "x": 0.08262228161265739, + "y": 0.2026203317789168 + }, + "p1": { + "x": 0.4673783006670673, + "y": -0.003606051439574669 + }, + "p2": { + "x": 0.08262228161265739, + "y": 113.41766182260108 + } + } + }, + { + "ID": "2267", + "typeID": "Label", + "zOrder": "69", + "measuredW": "309", + "measuredH": "26", + "x": "1470", + "y": "1441", + "properties": { + "color": "4985136", + "size": "18", + "text": "Learn how to build APIs and add auth-" + } + }, + { + "ID": "2268", + "typeID": "Label", + "zOrder": "70", + "measuredW": "251", + "measuredH": "26", + "x": "1470", + "y": "1468", + "properties": { + "color": "4985136", + "size": "18", + "text": "entication to secure endpoints." + } + }, + { + "ID": "2269", + "typeID": "Label", + "zOrder": "71", + "measuredW": "377", + "measuredH": "26", + "x": "1470", + "y": "1506", + "properties": { + "size": "18", + "text": "Develop some RESTful API and add JWT Auth.", + "color": "10027263" + } + }, + { + "ID": "2270", + "typeID": "Arrow", + "zOrder": "10", + "w": "145", + "h": "87", + "measuredW": "150", + "measuredH": "100", + "x": "1020", + "y": "1498", + "properties": { + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 0.27519639362265025, + "y": 87.01058087151091 + }, + "p1": { + "x": 0.46723646723646683, + "y": 0.14529914529914467 + }, + "p2": { + "x": 144.97607782567957, + "y": -0.07791258296765591 + } + } + }, + { + "ID": "2271", + "typeID": "Arrow", + "zOrder": "9", + "w": "1", + "h": "106", + "measuredW": "150", + "measuredH": "100", + "x": "1251", + "y": "1542", + "properties": { + "curvature": "-1", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "color": "11820806", + "p0": { + "x": 0.08262228161265739, + "y": -0.2708353187069861 + }, + "p1": { + "x": 0.46737830066706704, + "y": -0.0036060514395746673 + }, + "p2": { + "x": 0.08262228161265739, + "y": 105.9822607539802 + } + } + }, + { + "ID": "2272", + "typeID": "Arrow", + "zOrder": "8", + "w": "99", + "h": "1", + "measuredW": "150", + "measuredH": "100", + "x": "1250", + "y": "1593", + "properties": { + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 0.21279569788953268, + "y": 0.40095678414945723 + }, + "p1": { + "x": 0.4734542725983135, + "y": -0.0001116239247792803 + }, + "p2": { + "x": 98.87518164630478, + "y": 0.40095678414945723 + } + } + }, + { + "ID": "2273", + "typeID": "__group__", + "zOrder": "72", + "measuredW": "130", + "measuredH": "50", + "w": "130", + "h": "50", + "x": "1147", + "y": "1569", + "properties": { + "controlName": "110-caching" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "130", + "h": "50", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "64", + "measuredH": "25", + "x": "33", + "y": "13", + "properties": { + "text": "Caching", + "size": "17" + } + } + ] + } + } + }, + { + "ID": "2274", + "typeID": "__group__", + "zOrder": "73", + "measuredW": "115", + "measuredH": "40", + "w": "115", + "h": "40", + "x": "1302", + "y": "1574", + "properties": { + "controlName": "100-caching:server-side:redis" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "115", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "46", + "measuredW": "45", + "measuredH": "25", + "x": "35", + "y": "8", + "properties": { + "size": "17", + "text": "Redis" + } + } + ] + } + } + }, + { + "ID": "2275", + "typeID": "Label", + "zOrder": "74", + "measuredW": "325", + "measuredH": "26", + "x": "1470", + "y": "1564", + "properties": { + "color": "4985136", + "size": "18", + "text": "Learn about different caching strategies" + } + }, + { + "ID": "2276", + "typeID": "Label", + "zOrder": "75", + "measuredW": "258", + "measuredH": "26", + "x": "1470", + "y": "1592", + "properties": { + "color": "4985136", + "size": "18", + "text": "Including HTTP caching as well." + } + }, + { + "ID": "2277", + "typeID": "Label", + "zOrder": "76", + "measuredW": "387", + "measuredH": "26", + "x": "1470", + "y": "1628", + "properties": { + "size": "18", + "color": "11820806", + "text": "Use Redis in some application for performance." + } + }, + { + "ID": "2278", + "typeID": "Arrow", + "zOrder": "7", + "w": "1", + "h": "163", + "measuredW": "150", + "measuredH": "100", + "x": "1251", + "y": "1659", + "properties": { + "curvature": "-1", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "p0": { + "x": 1.0826222816126574, + "y": 0.2026203317789168 + }, + "p1": { + "x": 0.4673783006670671, + "y": -0.0036060514395746695 + }, + "p2": { + "x": 1.0826222816126574, + "y": 163.15924766293733 + } + } + }, + { + "ID": "2279", + "typeID": "Arrow", + "zOrder": "6", + "w": "143", + "h": "60", + "measuredW": "150", + "measuredH": "100", + "x": "1339", + "y": "1708", + "properties": { + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 0.15306473463670045, + "y": 60.5663286140275 + }, + "p1": { + "x": 0.50878873841777, + "y": -0.08602102696235464 + }, + "p2": { + "x": 143.51412319047085, + "y": 0.2742946840037348 + } + } + }, + { + "ID": "2280", + "typeID": "Arrow", + "zOrder": "5", + "w": "140", + "h": "21", + "measuredW": "150", + "measuredH": "100", + "x": "1346", + "y": "1756", + "properties": { + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": -0.14782038424959865, + "y": 20.605266471364075 + }, + "p1": { + "x": 0.5049876784965737, + "y": -0.04117901161463641 + }, + "p2": { + "x": 140.3147878833813, + "y": -0.5 + } + } + }, + { + "ID": "2281", + "typeID": "Arrow", + "zOrder": "4", + "w": "147", + "h": "17", + "measuredW": "150", + "measuredH": "100", + "x": "1334", + "y": "1789", + "properties": { + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": -0.20622717025435122, + "y": 1.003496233591477 + }, + "p1": { + "x": 0.5414707973491237, + "y": 0.04604856083293399 + }, + "p2": { + "x": 147.17430021424798, + "y": 17.081371948264405 + } + } + }, + { + "ID": "2282", + "typeID": "Arrow", + "zOrder": "3", + "w": "142", + "h": "51", + "measuredW": "150", + "measuredH": "100", + "x": "1339", + "y": "1799", + "properties": { + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 0.15306473463670045, + "y": 0.38225706715070373 + }, + "p1": { + "x": 0.4769533667572815, + "y": 0.08464143678172667 + }, + "p2": { + "x": 142.17430021424798, + "y": 51.29553016361501 + } + } + }, + { + "ID": "2283", + "typeID": "Label", + "zOrder": "77", + "measuredW": "395", + "measuredH": "26", + "x": "667", + "y": "1703", + "properties": { + "color": "4985136", + "size": "18", + "text": "Learn about additional database topics including" + } + }, + { + "ID": "2284", + "typeID": "Label", + "zOrder": "78", + "measuredW": "401", + "measuredH": "26", + "x": "667", + "y": "1730", + "properties": { + "color": "4985136", + "size": "18", + "text": "performance analysis, ORMs, limitations, common" + } + }, + { + "ID": "2285", + "typeID": "Label", + "zOrder": "79", + "measuredW": "322", + "measuredH": "26", + "x": "667", + "y": "1799", + "properties": { + "size": "18", + "color": "11820806", + "text": "Get some experience withs some ORM." + } + }, + { + "ID": "2286", + "typeID": "Arrow", + "zOrder": "80", + "w": "1", + "h": "304", + "measuredW": "150", + "measuredH": "100", + "x": "1250", + "y": "1836", + "properties": { + "curvature": "-1", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "color": "11820806", + "p0": { + "x": 1.0826222816126574, + "y": 0.45817900313909377 + }, + "p1": { + "x": 0.4673783006670671, + "y": -0.003606051439574667 + }, + "p2": { + "x": 1.0826222816126574, + "y": 304.3477355871719 + } + } + }, + { + "ID": "2288", + "typeID": "__group__", + "zOrder": "81", + "measuredW": "212", + "measuredH": "50", + "w": "212", + "h": "50", + "x": "1147", + "y": "1892", + "properties": { + "controlName": "112-testing" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "212", + "h": "50", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "56", + "measuredH": "25", + "x": "78", + "y": "13", + "properties": { + "text": "Testing", + "size": "17" + } + } + ] + } + } + }, + { + "ID": "2289", + "typeID": "__group__", + "zOrder": "82", + "measuredW": "212", + "measuredH": "40", + "w": "212", + "h": "40", + "x": "828", + "y": "1856", + "properties": { + "controlName": "100-testing:integration-testing" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "212", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "144", + "measuredH": "25", + "x": "34", + "y": "7", + "properties": { + "text": "Integration Testing", + "size": "17" + } + } + ] + } + } + }, + { + "ID": "2290", + "typeID": "__group__", + "zOrder": "83", + "measuredW": "214", + "measuredH": "37", + "w": "214", + "h": "37", + "x": "826", + "y": "1900", + "properties": { + "controlName": "101-testing:unit-testing" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "214", + "h": "37", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "91", + "measuredH": "25", + "x": "61", + "y": "6", + "properties": { + "text": "Unit Testing", + "size": "17" + } + } + ] + } + } + }, + { + "ID": "2291", + "typeID": "__group__", + "zOrder": "84", + "measuredW": "214", + "measuredH": "37", + "w": "214", + "h": "37", + "x": "826", + "y": "1941", + "properties": { + "controlName": "102-testing:functional-testing" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "214", + "h": "37", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "140", + "measuredH": "25", + "x": "37", + "y": "6", + "properties": { + "text": "Functional Testing", + "size": "17" + } + } + ] + } + } + }, + { + "ID": "2292", + "typeID": "Arrow", + "zOrder": "2", + "w": "130", + "h": "30", + "measuredW": "150", + "measuredH": "100", + "x": "1032", + "y": "1875", + "properties": { + "color": "2848996", + "curvature": "-1", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": -0.17790705272341256, + "y": 0.4387080768251508 + }, + "p1": { + "x": 0.4930677863483558, + "y": -0.08253007962375944 + }, + "p2": { + "x": 130.29643187323404, + "y": 29.645970879643528 + } + } + }, + { + "ID": "2293", + "typeID": "Arrow", + "zOrder": "1", + "w": "140", + "h": "1", + "measuredW": "150", + "measuredH": "100", + "x": "1031", + "y": "1918", + "properties": { + "color": "2848996", + "curvature": "-1", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": -0.17790705272341256, + "y": 0.4387080768251508 + }, + "p1": { + "x": 0.5, + "y": 0 + }, + "p2": { + "x": 139.3353697305704, + "y": 0.4387080768251508 + } + } + }, + { + "ID": "2294", + "typeID": "Arrow", + "zOrder": "0", + "w": "135", + "h": "30", + "measuredW": "150", + "measuredH": "100", + "x": "1028", + "y": "1931", + "properties": { + "color": "2848996", + "curvature": "-1", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 0.31413425095911407, + "y": 29.91853588099889 + }, + "p1": { + "x": 0.47627245735948676, + "y": 0.0705776198056142 + }, + "p2": { + "x": 135.6362548494567, + "y": 0.44243040409855894 + } + } + }, + { + "ID": "2295", + "typeID": "Label", + "zOrder": "85", + "measuredW": "399", + "measuredH": "26", + "x": "667", + "y": "1759", + "properties": { + "color": "4985136", + "size": "18", + "text": "issues to keep in mind with ORMs and in general." + } + }, + { + "ID": "2296", + "typeID": "Label", + "zOrder": "86", + "measuredW": "361", + "measuredH": "26", + "x": "1474", + "y": "1888", + "properties": { + "color": "4985136", + "size": "18", + "text": "Learn about different testing techniques and" + } + }, + { + "ID": "2297", + "typeID": "Label", + "zOrder": "87", + "measuredW": "371", + "measuredH": "26", + "x": "1474", + "y": "1918", + "properties": { + "color": "4985136", + "size": "18", + "text": "get some experience writing automated tests." + } + }, + { + "ID": "2298", + "typeID": "Arrow", + "zOrder": "88", + "w": "1", + "h": "71", + "measuredW": "150", + "measuredH": "100", + "x": "1249", + "y": "2280", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "40463", + "p0": { + "x": 0, + "y": -0.05210330899694782 + }, + "p1": { + "x": 0.5000000000000007, + "y": 0 + }, + "p2": { + "x": 0, + "y": 71 + } + } + }, + { + "ID": "2299", + "typeID": "Arrow", + "zOrder": "89", + "w": "2", + "h": "89", + "measuredW": "150", + "measuredH": "100", + "x": "1248", + "y": "2433", + "properties": { + "curvature": "0", + "leftArrow": "false", + "p0": { + "x": 1, + "y": 88 + }, + "p1": { + "x": 0.4072427393330943, + "y": 0.00953746862674794 + }, + "p2": { + "x": 1, + "y": 0 + }, + "rightArrow": "false", + "stroke": "dotted", + "color": "40463" + } + }, + { + "ID": "2300", + "typeID": "TextArea", + "zOrder": "90", + "w": "499", + "h": "118", + "measuredW": "200", + "measuredH": "140", + "x": "999", + "y": "2346" + }, + { + "ID": "2301", + "typeID": "Label", + "zOrder": "91", + "measuredW": "431", + "measuredH": "25", + "x": "1033", + "y": "2365", + "properties": { + "size": "17", + "text": "Look at the detailed version for what else you don’t know" + } + }, + { + "ID": "2302", + "typeID": "__group__", + "zOrder": "92", + "measuredW": "430", + "measuredH": "44", + "w": "430", + "h": "44", + "x": "1034", + "y": "2400", + "properties": { + "controlName": "json:backend.json" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "430", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "147", + "measuredH": "25", + "x": "140", + "y": "9", + "properties": { + "size": "17", + "text": "Backend Roadmap" + } + } + ] + } + } + }, + { + "ID": "2303", + "typeID": "TextArea", + "zOrder": "93", + "w": "613", + "h": "246", + "measuredW": "200", + "measuredH": "140", + "x": "946", + "y": "2033" + }, + { + "ID": "2304", + "typeID": "Label", + "zOrder": "94", + "measuredW": "532", + "measuredH": "26", + "x": "978", + "y": "2099", + "properties": { + "color": "4985136", + "size": "18", + "text": "At this point, you should have enough knowledge to find a junior to" + } + }, + { + "ID": "2305", + "typeID": "Label", + "zOrder": "95", + "measuredW": "530", + "measuredH": "26", + "x": "978", + "y": "2129", + "properties": { + "color": "4985136", + "size": "18", + "text": "mid-level (maybe even senior) backend developer position at any" + } + }, + { + "ID": "2306", + "typeID": "Label", + "zOrder": "96", + "measuredW": "441", + "measuredH": "26", + "x": "978", + "y": "2159", + "properties": { + "color": "4985136", + "size": "18", + "text": "company (depending on the depth of your knowledge)." + } + }, + { + "ID": "2307", + "typeID": "Label", + "zOrder": "97", + "measuredW": "116", + "measuredH": "32", + "x": "978", + "y": "2055", + "properties": { + "color": "4985136", + "size": "24", + "text": "Job Ready" + } + }, + { + "ID": "2308", + "typeID": "Label", + "zOrder": "98", + "measuredW": "536", + "measuredH": "26", + "x": "978", + "y": "2201", + "properties": { + "size": "18", + "color": "10027263", + "text": "Deepen your pool of knowledge and keep building projects till you" + } + }, + { + "ID": "2309", + "typeID": "Label", + "zOrder": "99", + "measuredW": "360", + "measuredH": "26", + "x": "978", + "y": "2230", + "properties": { + "size": "18", + "color": "10027263", + "text": "find a job. Your job will teach you a lot as well." + } + }, + { + "ID": "2310", + "typeID": "Canvas", + "zOrder": "100", + "w": "380", + "h": "150", + "measuredW": "100", + "measuredH": "70", + "x": "688", + "y": "655" + }, + { + "ID": "2311", + "typeID": "Label", + "zOrder": "101", + "measuredW": "187", + "measuredH": "32", + "x": "716", + "y": "680", + "properties": { + "size": "24", + "text": "Beginner Version" + } + }, + { + "ID": "2312", + "typeID": "Label", + "zOrder": "102", + "measuredW": "319", + "measuredH": "28", + "x": "716", + "y": "721", + "properties": { + "color": "4985136", + "size": "20", + "text": "This is the trimmed down version of" + } + }, + { + "ID": "2313", + "typeID": "Label", + "zOrder": "103", + "measuredW": "328", + "measuredH": "28", + "x": "716", + "y": "752", + "properties": { + "color": "4985136", + "size": "20", + "text": "the backend roadmap for beginners." + } + }, + { + "ID": "2314", + "typeID": "__group__", + "zOrder": "104", + "measuredW": "382", + "measuredH": "47", + "w": "382", + "h": "47", + "x": "688", + "y": "815", + "properties": { + "controlName": "json:backend.json" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "382", + "h": "47", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "3355443", + "borderColor": "3355443" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "203", + "measuredH": "26", + "x": "89", + "y": "11", + "properties": { + "color": "16777215", + "size": "18", + "text": "Visit the Detailed Version" + } + } + ] + } + } + }, + { + "ID": "2315", + "typeID": "Arrow", + "zOrder": "105", + "w": "3", + "h": "1", + "measuredW": "150", + "measuredH": "100", + "x": "1315", + "y": "2523", + "properties": { + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "color": "16777215", + "p0": { + "x": 0.14652915468354877, + "y": 0.452028801972574 + }, + "p1": { + "x": 0.47345427259831346, + "y": -0.00011162392477928299 + }, + "p2": { + "x": 2.7298768229543384, + "y": 0.452028801972574 + } + } + } + ] + }, + "attributes": { + "name": "New Wireframe 1 copy 2", + "order": 1000018.3019863295, + "parentID": null, + "notes": "" + }, + "branchID": "Master", + "resourceID": "7BDB8D3D-BEB5-4A58-BF91-F519F8754661", + "mockupH": "1887", + "mockupW": "1209", + "measuredW": "1857", + "measuredH": "2524", + "version": "1.0" + }, + "groupOffset": { + "x": 0, + "y": 0 + }, + "dependencies": [], + "projectID": "file:///Users/kamrify/Desktop/New%20Roadmaps/Android%20Roadmap.bmpr" +} \ No newline at end of file diff --git a/src/data/roadmaps/backend/backend.json b/src/data/roadmaps/backend/backend.json index 927674008..7ffd256db 100644 --- a/src/data/roadmaps/backend/backend.json +++ b/src/data/roadmaps/backend/backend.json @@ -3,315 +3,496 @@ "controls": { "control": [ { - "ID": "1854", + "ID": "2380", "typeID": "Arrow", - "zOrder": "55", - "w": "60", - "h": "30", + "zOrder": "0", + "w": "1", + "h": "101", "measuredW": "150", "measuredH": "100", - "x": "1444", - "y": "1445", + "x": "1254", + "y": "846", "properties": { "color": "2848996", - "curvature": "0", + "curvature": "-1", + "direction": "bottom", "leftArrow": "false", "rightArrow": "false", - "stroke": "dotted", "p0": { - "x": 60.31920991767379, - "y": 30.162697528578974 + "x": 0.08262228161265739, + "y": -0.00765522788196904 }, "p1": { - "x": 0.38469222125109326, - "y": -0.13210138594081827 + "x": 0.4673783006670675, + "y": -0.003606051439574666 }, "p2": { - "x": 0.32605804231866387, - "y": -0.07999046131453724 + "x": 0.08262228161265739, + "y": 100.83103671353786 } } }, { - "ID": "1855", + "ID": "2381", "typeID": "Arrow", - "zOrder": "56", - "w": "61", - "h": "24", + "zOrder": "1", + "w": "136", + "h": "1", "measuredW": "150", "measuredH": "100", - "x": "1448", - "y": "1409", + "x": "1071", + "y": "3249", "properties": { "color": "2848996", - "curvature": "0", + "direction": "bottom", "leftArrow": "false", "rightArrow": "false", "stroke": "dotted", "p0": { - "x": 61.039807248761235, - "y": 0.07433489335426202 + "x": -0.08928421577456902, + "y": -0.2906057506302204 }, "p1": { - "x": 0.46208226221079857, - "y": 0.11053984575835622 + "x": 0.4734542725983134, + "y": -0.00011162392477928117 }, "p2": { - "x": 0.4878500355812321, - "y": 24.3979188798794 + "x": 136.35388907392644, + "y": -0.2906057506302204 + } + } + }, + { + "ID": "2382", + "typeID": "__group__", + "zOrder": "2", + "measuredW": "214", + "measuredH": "46", + "w": "214", + "h": "46", + "x": "671", + "y": "3258", + "properties": { + "controlName": "102-scalability:migration-strategies" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "214", + "h": "46", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "155", + "measuredH": "25", + "x": "29", + "y": "9", + "properties": { + "text": "Migration Strategies", + "size": "17" + } + } + ] + } + } + }, + { + "ID": "2383", + "typeID": "__group__", + "zOrder": "3", + "measuredW": "211", + "measuredH": "196", + "w": "211", + "h": "196", + "x": "671", + "y": "3298", + "properties": { + "controlName": "101-scalability:instrumentation-monitoring-telemetry" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "211", + "h": "196", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0" + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "151", + "measuredH": "25", + "x": "29", + "y": "156", + "properties": { + "size": "17", + "text": "Difference + Usage" + } + }, + { + "ID": "4", + "typeID": "TextArea", + "zOrder": "2", + "w": "187", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "11", + "y": "15", + "properties": { + "color": "16770457" + } + }, + { + "ID": "5", + "typeID": "Label", + "zOrder": "3", + "measuredW": "121", + "measuredH": "25", + "x": "44", + "y": "22", + "properties": { + "size": "17", + "text": "Instrumentation" + } + }, + { + "ID": "6", + "typeID": "TextArea", + "zOrder": "4", + "w": "187", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "11", + "y": "60", + "properties": { + "color": "16770457" + } + }, + { + "ID": "7", + "typeID": "Label", + "zOrder": "5", + "measuredW": "83", + "measuredH": "25", + "x": "63", + "y": "67", + "properties": { + "size": "17", + "text": "Monitoring" + } + }, + { + "ID": "8", + "typeID": "TextArea", + "zOrder": "6", + "w": "187", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "11", + "y": "105", + "properties": { + "color": "16770457" + } + }, + { + "ID": "9", + "typeID": "Label", + "zOrder": "7", + "measuredW": "76", + "measuredH": "25", + "x": "67", + "y": "112", + "properties": { + "size": "17", + "text": "Telemetry" + } + } + ] } } }, { - "ID": "1863", + "ID": "2384", "typeID": "Arrow", - "zOrder": "57", + "zOrder": "4", "w": "1", - "h": "76", + "h": "744", "measuredW": "150", "measuredH": "100", - "x": "1751", - "y": "2482", + "x": "1301", + "y": "2957", "properties": { "color": "2848996", "direction": "bottom", "leftArrow": "false", "rightArrow": "false", - "stroke": "dotted", "p0": { "x": 0, - "y": 76.34691492882303 + "y": -0.5 }, "p1": { - "x": 0.5702216182256714, - "y": -0.004517251466967862 + "x": 0.4734542725983139, + "y": -0.00011162392477927807 }, "p2": { "x": 0, - "y": 0.4406451246140932 + "y": 743.8442967676933 } } }, { - "ID": "1883", + "ID": "2385", "typeID": "Arrow", - "zOrder": "58", - "w": "1", - "h": "83", + "zOrder": "5", + "w": "276", + "h": "1", "measuredW": "150", "measuredH": "100", - "x": "1328", - "y": "1054", + "x": "1264", + "y": "2948", "properties": { "color": "2848996", - "curvature": "-1", + "direction": "bottom", "leftArrow": "false", "rightArrow": "false", "stroke": "dotted", "p0": { - "x": -0.24980034602958767, - "y": 83.20762430962418 + "x": 0.14952920007272041, + "y": -0.2906057506302204 }, "p1": { - "x": 0.5, - "y": 0 - }, + "x": 0.47345427259831324, + "y": -0.00011162392477928119 + }, "p2": { - "x": -0.24980034602958767, - "y": 0.43870807682526447 + "x": 276.35388907392644, + "y": -0.2906057506302204 } } }, { - "ID": "1884", + "ID": "2386", "typeID": "Arrow", - "zOrder": "59", - "w": "189", - "h": "26", + "zOrder": "6", + "w": "1", + "h": "95", "measuredW": "150", "measuredH": "100", - "x": "1336", - "y": "948", + "x": "1051", + "y": "2946", "properties": { "color": "2848996", - "curvature": "0", + "direction": "bottom", "leftArrow": "false", "rightArrow": "false", "stroke": "dotted", "p0": { - "x": 188.1515397158321, - "y": 26.337543700961987 + "x": 0.14952920007272041, + "y": 95.70939424936978 }, "p1": { - "x": 0.47995321703110466, - "y": -0.07212649611970283 + "x": 0.4734542725983132, + "y": -0.00011162392477928113 }, "p2": { - "x": -0.43181905983556135, - "y": 4.652303666645025 + "x": 0.14952920007272041, + "y": 0.28897406297528505 } } }, { - "ID": "1885", + "ID": "2387", "typeID": "Arrow", - "zOrder": "60", - "w": "166", - "h": "56", + "zOrder": "7", + "w": "487", + "h": "1", "measuredW": "150", "measuredH": "100", - "x": "1351", - "y": "872", + "x": "837", + "y": "2949", "properties": { "color": "2848996", - "curvature": "0", + "direction": "bottom", "leftArrow": "false", "rightArrow": "false", - "stroke": "dotted", "p0": { - "x": 166.53718413209776, - "y": 0.4764677114528695 + "x": -0.27015691059352775, + "y": -0.5 }, "p1": { - "x": 0.46937049176096135, - "y": 0.08997514266115965 + "x": 0.47345427259831374, + "y": -0.00011162392477927586 }, "p2": { - "x": 0.46780214183309, - "y": 56.80287186414216 + "x": 486.40782766206894, + "y": -0.5 } } }, { - "ID": "1886", + "ID": "2388", "typeID": "Arrow", - "zOrder": "61", - "w": "167", - "h": "21", + "zOrder": "8", + "w": "1", + "h": "141", "measuredW": "150", "measuredH": "100", - "x": "1349", - "y": "918", + "x": "745", + "y": "2813", "properties": { "color": "2848996", - "curvature": "0", + "direction": "bottom", "leftArrow": "false", "rightArrow": "false", - "stroke": "dotted", "p0": { - "x": 166.76388789240877, - "y": 0.20312439636302315 + "x": 0, + "y": -0.5 }, "p1": { - "x": 0.4153666146645862, - "y": 0.03354134165366616 + "x": 0.4734542725983137, + "y": -0.00011162392477927808 }, "p2": { - "x": -0.18213472511160944, - "y": 21.402619331921187 + "x": 0, + "y": 140.20697009709465 } } }, { - "ID": "1887", - "typeID": "Arrow", - "zOrder": "62", - "w": "174", - "h": "99", - "measuredW": "150", - "measuredH": "100", - "x": "1519", - "y": "1206", + "ID": "2389", + "typeID": "__group__", + "zOrder": "9", + "measuredW": "200", + "measuredH": "50", + "w": "200", + "h": "50", + "x": "674", + "y": "2927", "properties": { - "curvature": "0", - "rightArrow": "false", - "leftArrow": "false", - "color": "10027263", - "stroke": "dotted", - "p0": { - "x": -0.4945558087927111, - "y": 99.40759071508523 - }, - "p1": { - "x": 0.4991402865711436, - "y": -0.13680773075641436 - }, - "p2": { - "x": 173.69874920774737, - "y": 0.19861969047110506 + "controlName": "120-real-time-data" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "h": "50", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0" + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "120", + "measuredH": "25", + "x": "40", + "y": "12", + "properties": { + "size": "17", + "text": "Real-Time Data" + } + } + ] } } }, { - "ID": "1888", + "ID": "2390", "typeID": "Arrow", - "zOrder": "63", - "w": "177", - "h": "54", + "zOrder": "10", + "w": "1", + "h": "91", "measuredW": "150", "measuredH": "100", - "x": "1516", - "y": "1263", + "x": "747", + "y": "2729", "properties": { - "curvature": "0", - "rightArrow": "false", + "color": "2848996", + "direction": "bottom", "leftArrow": "false", - "color": "10027263", + "rightArrow": "false", "stroke": "dotted", "p0": { - "x": -0.14449267573741054, - "y": 54.33230661633661 + "x": 0.14952920007272041, + "y": 91.51893704138683 }, "p1": { - "x": 0.5049653579676676, - "y": -0.08879907621247117 + "x": 0.4734542725983133, + "y": -0.0001116239247792811 }, "p2": { - "x": 176.69874920774737, - "y": 0.08207771058664548 + "x": 0.14952920007272041, + "y": 0.044261593589453696 } } }, { - "ID": "1889", + "ID": "2391", "typeID": "Arrow", - "zOrder": "64", - "w": "189", - "h": "5", + "zOrder": "11", + "w": "623", + "h": "1", "measuredW": "150", "measuredH": "100", - "x": "1520", - "y": "1323", + "x": "849", + "y": "2811", "properties": { - "curvature": "0", - "rightArrow": "false", + "color": "2848996", + "direction": "bottom", "leftArrow": "false", - "color": "10027263", - "stroke": "dotted", + "rightArrow": "false", "p0": { - "x": -0.1695873753203614, - "y": 4.932054084115634 + "x": -0.27015691059352775, + "y": -0.5 }, "p1": { - "x": 0.5, - "y": 0 + "x": 0.47345427259831374, + "y": -0.00011162392477927636 }, "p2": { - "x": 188.57320260870983, - "y": -0.3887220358042214 + "x": 622.4205322823302, + "y": -0.5 } } }, { - "ID": "1890", + "ID": "2392", "typeID": "Arrow", - "zOrder": "65", - "w": "236", - "h": "1", + "zOrder": "12", + "w": "1", + "h": "260", "measuredW": "150", "measuredH": "100", - "x": "923", - "y": "1047", + "x": "1567", + "y": "2502", "properties": { "color": "2848996", "direction": "bottom", @@ -319,120 +500,328 @@ "rightArrow": "false", "p0": { "x": 0, - "y": 0.5 + "y": -0.5 }, "p1": { - "x": 0.47345427259831335, - "y": -0.00011162392477927807 + "x": 0.4734542725983138, + "y": -0.00011162392477927808 }, "p2": { - "x": 235.68489507160098, - "y": -0.32512695598120445 + "x": 0, + "y": 259.3201595478108 } } }, { - "ID": "1891", + "ID": "2393", "typeID": "Arrow", - "zOrder": "66", + "zOrder": "13", "w": "1", - "h": "90", + "h": "61", "measuredW": "150", "measuredH": "100", - "x": "910", - "y": "1052", + "x": "1751", + "y": "2608", "properties": { "color": "2848996", - "curvature": "-1", + "direction": "bottom", "leftArrow": "false", "rightArrow": "false", "stroke": "dotted", "p0": { - "x": -0.24980034602958767, - "y": 89.04191001796403 + "x": 0, + "y": 61.303758754635055 }, "p1": { - "x": 0.49999999999999994, - "y": 0 + "x": 0.5702216182256715, + "y": -0.004517251466967861 }, "p2": { - "x": -0.24980034602958767, - "y": -0.47695781458287456 + "x": 0, + "y": 0.4406451246140932 } } }, { - "ID": "1892", + "ID": "2394", "typeID": "Arrow", - "zOrder": "67", + "zOrder": "14", "w": "1", - "h": "172", + "h": "68", "measuredW": "150", "measuredH": "100", - "x": "746", - "y": "969", + "x": "1379", + "y": "2491", "properties": { "color": "2848996", - "curvature": "-1", + "direction": "bottom", "leftArrow": "false", "rightArrow": "false", "stroke": "dotted", "p0": { - "x": -0.24980034602958767, - "y": 172.04191001796403 + "x": 0.14952920007272041, + "y": 68.46927069197682 }, "p1": { - "x": 0.5, - "y": 0 + "x": 0.47345427259831335, + "y": -0.00011162392477928112 }, "p2": { - "x": -0.24980034602958767, - "y": 0.24952581221509718 + "x": 0.14952920007272041, + "y": 0.11283757677028916 } } }, { - "ID": "1894", + "ID": "2395", "typeID": "Arrow", - "zOrder": "68", + "zOrder": "15", + "w": "413", + "h": "1", + "measuredW": "150", + "measuredH": "100", + "x": "1160", + "y": "2489", + "properties": { + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": -0.23631528854207318, + "y": -0.5 + }, + "p1": { + "x": 0.4734542725983137, + "y": -0.00011162392477927657 + }, + "p2": { + "x": 412.9689266111002, + "y": -0.5 + } + } + }, + { + "ID": "2396", + "typeID": "Arrow", + "zOrder": "16", "w": "1", - "h": "113", + "h": "95", + "measuredW": "150", + "measuredH": "100", + "x": "1086", + "y": "2494", + "properties": { + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 0.14952920007272041, + "y": 95.46927069197682 + }, + "p1": { + "x": 0.47345427259831324, + "y": -0.00011162392477928106 + }, + "p2": { + "x": 0.14952920007272041, + "y": 0.044261593589453696 + } + } + }, + { + "ID": "2397", + "typeID": "Arrow", + "zOrder": "17", + "w": "1", + "h": "141", + "measuredW": "150", + "measuredH": "100", + "x": "1086", + "y": "2351", + "properties": { + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": 0, + "y": -0.5 + }, + "p1": { + "x": 0.4734542725983137, + "y": -0.00011162392477927808 + }, + "p2": { + "x": 0, + "y": 140.20697009709465 + } + } + }, + { + "ID": "2398", + "typeID": "Arrow", + "zOrder": "18", + "w": "283", + "h": "70", + "measuredW": "150", + "measuredH": "100", + "x": "1286", + "y": "2337", + "properties": { + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": -0.4303565735040138, + "y": 0.1604238547820387 + }, + "p1": { + "x": 0.6318104821378916, + "y": 0.08459535307056273 + }, + "p2": { + "x": 282.89489105686675, + "y": 70.62473414627311 + } + } + }, + { + "ID": "2399", + "typeID": "Arrow", + "zOrder": "19", + "w": "280", + "h": "32", + "measuredW": "150", + "measuredH": "100", + "x": "1291", + "y": "2330", + "properties": { + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 0.4416692841202803, + "y": 1.288397997157972 + }, + "p1": { + "x": 0.6187498978609268, + "y": 0.05481031926139201 + }, + "p2": { + "x": 280.830903985679, + "y": 32.11653374968546 + } + } + }, + { + "ID": "2400", + "typeID": "Arrow", + "zOrder": "20", + "w": "272", + "h": "35", "measuredW": "150", "measuredH": "100", "x": "1299", - "y": "3757", + "y": "2269", "properties": { "color": "2848996", - "curvature": "0", + "direction": "bottom", "leftArrow": "false", "rightArrow": "false", "stroke": "dotted", "p0": { - "x": 1, - "y": 112.58154962364824 + "x": -0.21829839384940897, + "y": 35.13027840564564 }, "p1": { - "x": 0.4072427393330942, - "y": 0.00953746862674794 + "x": 0.6266543897586216, + "y": -0.03388863281637455 }, "p2": { - "x": 1, - "y": 0 + "x": 271.362897521273, + "y": -0.10187674010012415 + } + } + }, + { + "ID": "2401", + "typeID": "Arrow", + "zOrder": "21", + "w": "280", + "h": "72", + "measuredW": "150", + "measuredH": "100", + "x": "1287", + "y": "2223", + "properties": { + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 0.03764989090200288, + "y": 72.32223961920909 + }, + "p1": { + "x": 0.531044448873829, + "y": -0.059547538369544246 + }, + "p2": { + "x": 280.42688459246074, + "y": 0.3899228633117673 } } }, { - "ID": "1896", + "ID": "2402", + "typeID": "Arrow", + "zOrder": "22", + "w": "320", + "h": "1", + "measuredW": "150", + "measuredH": "100", + "x": "1295", + "y": "2316", + "properties": { + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": 0, + "y": -0.5 + }, + "p1": { + "x": 0.4734542725983135, + "y": -0.00011162392477927686 + }, + "p2": { + "x": 320.137094685658, + "y": -0.5 + }, + "stroke": "dotted" + } + }, + { + "ID": "2403", "typeID": "__group__", - "zOrder": "216", - "measuredW": "432", - "measuredH": "124", - "w": "432", - "h": "124", - "x": "670", - "y": "3491", + "zOrder": "23", + "measuredW": "324", + "measuredH": "50", + "w": "324", + "h": "50", + "x": "1005", + "y": "2312", "properties": { - "controlName": "104-scalability:observability" + "controlName": "114-design-and-development-principles" }, "children": { "controls": { @@ -441,53 +830,27 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "432", - "h": "124", + "w": "324", + "h": "50", "measuredW": "200", "measuredH": "140", "x": "0", "y": "0", "properties": { - "color": "16770457" + "color": "16776960" } }, { "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "105", - "measuredH": "26", - "x": "18", - "y": "18", - "properties": { - "text": "Observability", - "size": "18" - } - }, - { - "ID": "2", - "typeID": "Label", - "zOrder": "2", - "measuredW": "400", - "measuredH": "25", - "x": "18", - "y": "50", - "properties": { - "size": "17", - "text": "Metrics logging and other observable items that can" - } - }, - { - "ID": "3", - "typeID": "Label", - "zOrder": "3", - "measuredW": "283", + "measuredW": "275", "measuredH": "25", - "x": "18", - "y": "79", + "x": "24", + "y": "13", "properties": { "size": "17", - "text": "help in debugging and solving issues" + "text": "Design and Development Principles" } } ] @@ -495,2506 +858,1355 @@ } }, { - "ID": "1898", - "typeID": "__group__", - "zOrder": "69", - "measuredW": "200", - "measuredH": "50", - "w": "200", - "h": "50", - "x": "1005", - "y": "2463", + "ID": "2404", + "typeID": "Arrow", + "zOrder": "24", + "w": "219", + "h": "145", + "measuredW": "150", + "measuredH": "100", + "x": "868", + "y": "2155", "properties": { - "controlName": "115-architectural-patterns" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "166", - "measuredH": "25", - "x": "17", - "y": "13", - "properties": { - "text": "Architectural Patterns", - "size": "17" - } - } - ] + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": -0.23631528854207318, + "y": 0.5 + }, + "p1": { + "x": 0.5857743945397229, + "y": 0.2432032446977395 + }, + "p2": { + "x": 219.0587868926923, + "y": 144.632126492103 } } }, { - "ID": "1899", - "typeID": "__group__", - "zOrder": "70", - "measuredW": "209", - "measuredH": "40", - "w": "209", - "h": "40", - "x": "1005", - "y": "2546", + "ID": "2405", + "typeID": "Arrow", + "zOrder": "25", + "w": "1", + "h": "91", + "measuredW": "150", + "measuredH": "100", + "x": "768", + "y": "2148", "properties": { - "controlName": "100-architectural-patterns:monolithic-apps" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "202", - "h": "40", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "123", - "measuredW": "123", - "measuredH": "25", - "x": "39", - "y": "7", - "properties": { - "size": "17", - "text": "Monolithic Apps" - } - }, - { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "185", - "y": "8", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "3", - "typeID": "Icon", - "zOrder": "3", - "measuredW": "24", - "measuredH": "24", - "x": "185", - "y": "8", - "properties": { - "color": "10027263", - "icon": { - "ID": "check-circle", - "size": "small" - } - } - } - ] + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 0.14952920007272041, + "y": 91.51893704138683 + }, + "p1": { + "x": 0.4734542725983133, + "y": -0.0001116239247792811 + }, + "p2": { + "x": 0.14952920007272041, + "y": 0.044261593589453696 } } }, { - "ID": "1900", - "typeID": "__group__", - "zOrder": "71", - "measuredW": "209", - "measuredH": "37", - "w": "209", - "h": "37", - "x": "1005", - "y": "2588", + "ID": "2406", + "typeID": "Arrow", + "zOrder": "26", + "w": "1", + "h": "118", + "measuredW": "150", + "measuredH": "100", + "x": "768", + "y": "2031", "properties": { - "controlName": "101-architectural-patterns:microservices" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "202", - "h": "37", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "112", - "measuredW": "108", - "measuredH": "25", - "x": "45", - "y": "6", - "properties": { - "size": "17", - "text": "Microservices" - } - }, - { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "185", - "y": "7", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "3", - "typeID": "Icon", - "zOrder": "3", - "measuredW": "24", - "measuredH": "24", - "x": "185", - "y": "7", - "properties": { - "color": "10027263", - "icon": { - "ID": "check-circle", - "size": "small" - } - } - } - ] - } - } - }, - { - "ID": "1902", - "typeID": "__group__", - "zOrder": "72", - "measuredW": "209", - "measuredH": "37", - "w": "209", - "h": "37", - "x": "1005", - "y": "2628", - "properties": { - "controlName": "102-architectural-patterns:soa" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "202", - "h": "37", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "38", - "measuredW": "34", - "measuredH": "25", - "x": "103", - "y": "6", - "properties": { - "size": "17", - "text": "SOA" - } - }, - { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "185", - "y": "7", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "3", - "typeID": "Icon", - "zOrder": "3", - "measuredW": "24", - "measuredH": "24", - "x": "185", - "y": "7", - "properties": { - "color": "10027263", - "icon": { - "ID": "check-circle", - "size": "small" - } - } - } - ] + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": 0, + "y": -0.5 + }, + "p1": { + "x": 0.47345427259831374, + "y": -0.0001116239247792781 + }, + "p2": { + "x": 0, + "y": 117.42746065827805 } } }, { - "ID": "1903", - "typeID": "__group__", - "zOrder": "73", - "measuredW": "182", - "measuredH": "50", - "w": "182", - "h": "50", - "x": "1284", - "y": "2463", + "ID": "2407", + "typeID": "Arrow", + "zOrder": "27", + "w": "1", + "h": "91", + "measuredW": "150", + "measuredH": "100", + "x": "769", + "y": "1939", "properties": { - "controlName": "117-message-brokers" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "182", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "141", - "measuredW": "136", - "measuredH": "25", - "x": "20", - "y": "12", - "properties": { - "size": "17", - "text": "Message Brokers" - } - } - ] + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 0.14952920007272041, + "y": 91.51893704138683 + }, + "p1": { + "x": 0.4734542725983133, + "y": -0.0001116239247792811 + }, + "p2": { + "x": 0.14952920007272041, + "y": 0.044261593589453696 } } }, { - "ID": "1904", - "typeID": "__group__", - "zOrder": "74", - "measuredW": "305", - "measuredH": "50", - "w": "305", - "h": "50", - "x": "1516", - "y": "2465", + "ID": "2408", + "typeID": "Arrow", + "zOrder": "28", + "w": "469", + "h": "1", + "measuredW": "150", + "measuredH": "100", + "x": "837", + "y": "2033", "properties": { - "controlName": "118-containerization" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "305", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "250", - "measuredH": "25", - "x": "28", - "y": "13", - "properties": { - "text": "Containerization vs Virtualization", - "size": "17" - } - } - ] + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": -0.23631528854207318, + "y": -0.5 + }, + "p1": { + "x": 0.4734542725983135, + "y": -0.000111623924779277 + }, + "p2": { + "x": 468.3987853999388, + "y": -0.5 } } }, { - "ID": "1905", - "typeID": "__group__", - "zOrder": "75", - "measuredW": "197", - "measuredH": "50", - "w": "197", - "h": "50", - "x": "678", - "y": "2786", + "ID": "2409", + "typeID": "Arrow", + "zOrder": "29", + "w": "1", + "h": "75", + "measuredW": "150", + "measuredH": "100", + "x": "1391", + "y": "2039", "properties": { - "controlName": "122-web-servers" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "197", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "98", - "measuredH": "25", - "x": "50", - "y": "13", - "properties": { - "text": "Web Servers", - "size": "17" - } - } - ] + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 0.14952920007272041, + "y": 75.11122147525384 + }, + "p1": { + "x": 0.4734542725983133, + "y": -0.000111623924779281 + }, + "p2": { + "x": 0.14952920007272041, + "y": 0.044261593589453696 } } }, { - "ID": "1906", - "typeID": "__group__", - "zOrder": "76", - "measuredW": "153", - "measuredH": "40", - "w": "153", - "h": "40", - "x": "671", - "y": "2572", + "ID": "2410", + "typeID": "Arrow", + "zOrder": "30", + "w": "223", + "h": "1", + "measuredW": "150", + "measuredH": "100", + "x": "1391", + "y": "1798", "properties": { - "controlName": "100-web-servers:nginx" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "144", - "h": "40", - "measuredW": "200", - "measuredH": "140", - "x": "9", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "46", - "measuredW": "45", - "measuredH": "25", - "x": "58", - "y": "7", - "properties": { - "size": "17", - "text": "Nginx" - } - }, - { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "8", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "3", - "typeID": "Icon", - "zOrder": "3", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "8", - "properties": { - "color": "10027263", - "icon": { - "ID": "check-circle", - "size": "small" - } - } - } - ] + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": 0, + "y": -0.5 + }, + "p1": { + "x": 0.4734542725983135, + "y": -0.00011162392477927705 + }, + "p2": { + "x": 223.3987853999388, + "y": -0.5 } } }, { - "ID": "1907", - "typeID": "__group__", - "zOrder": "77", - "measuredW": "153", - "measuredH": "40", - "w": "153", - "h": "40", - "x": "671", - "y": "2617", + "ID": "2411", + "typeID": "Arrow", + "zOrder": "31", + "w": "1", + "h": "206", + "measuredW": "150", + "measuredH": "100", + "x": "1688", + "y": "1690", "properties": { - "controlName": "101-web-servers:apache" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "144", - "h": "40", - "measuredW": "200", - "measuredH": "140", - "x": "9", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "60", - "measuredW": "59", - "measuredH": "25", - "x": "51", - "y": "7", - "properties": { - "size": "17", - "text": "Apache" - } - }, - { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "8", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "3", - "typeID": "Icon", - "zOrder": "3", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "8", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "4", - "typeID": "Icon", - "zOrder": "4", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "8", - "properties": { - "color": "3700253", - "icon": { - "ID": "check-circle", - "size": "small" - } - } - } - ] + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 0.14952920007272041, + "y": 206.75343217305021 + }, + "p1": { + "x": 0.4734542725983135, + "y": -0.00011162392477928018 + }, + "p2": { + "x": 0.14952920007272041, + "y": 0.38258659839470965 + } + } + }, + { + "ID": "2412", + "typeID": "Arrow", + "zOrder": "32", + "w": "223", + "h": "1", + "measuredW": "150", + "measuredH": "100", + "x": "1391", + "y": "1780", + "properties": { + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": 0, + "y": -0.5 + }, + "p1": { + "x": 0.4734542725983135, + "y": -0.00011162392477927705 + }, + "p2": { + "x": 223.3987853999388, + "y": -0.5 } } }, { - "ID": "1908", - "typeID": "__group__", - "zOrder": "78", - "measuredW": "153", - "measuredH": "40", - "w": "153", - "h": "40", - "x": "671", - "y": "2663", + "ID": "2413", + "typeID": "Arrow", + "zOrder": "33", + "w": "1", + "h": "211", + "measuredW": "150", + "measuredH": "100", + "x": "1391", + "y": "1566", "properties": { - "controlName": "102-web-servers:caddy" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "144", - "h": "40", - "measuredW": "200", - "measuredH": "140", - "x": "9", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "53", - "measuredW": "49", - "measuredH": "25", - "x": "54", - "y": "7", - "properties": { - "size": "17", - "text": "Caddy" - } - }, - { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "8", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "3", - "typeID": "Icon", - "zOrder": "3", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "8", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "4", - "typeID": "Icon", - "zOrder": "4", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "8", - "properties": { - "color": "3700253", - "icon": { - "ID": "check-circle", - "size": "small" - } - } - } - ] + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": 0, + "y": -0.5 + }, + "p1": { + "x": 0.47345427259831363, + "y": -0.00011162392477927808 + }, + "p2": { + "x": 0, + "y": 210.88680138292193 } } }, { - "ID": "1909", - "typeID": "__group__", - "zOrder": "79", - "measuredW": "152", - "measuredH": "40", - "w": "152", - "h": "40", - "x": "671", - "y": "2708", + "ID": "2414", + "typeID": "Arrow", + "zOrder": "34", + "w": "1", + "h": "93", + "measuredW": "150", + "measuredH": "100", + "x": "1391", + "y": "1486", "properties": { - "controlName": "103-web-servers:ms-iis" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "144", - "h": "40", - "measuredW": "200", - "measuredH": "140", - "x": "8", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "55", - "measuredW": "51", - "measuredH": "25", - "x": "57", - "y": "7", - "properties": { - "size": "17", - "text": "MS IIS" - } - }, - { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "8", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "3", - "typeID": "Icon", - "zOrder": "3", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "8", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "4", - "typeID": "Icon", - "zOrder": "4", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "8", - "properties": { - "color": "3700253", - "icon": { - "ID": "check-circle", - "size": "small" - } - } - } - ] + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 1.2127956978895327, + "y": 93.40095678414946 + }, + "p1": { + "x": 0.47345427259831346, + "y": -0.00011162392477928008 + }, + "p2": { + "x": 0.14952920007272041, + "y": 0.38258659839470965 + } + } + }, + { + "ID": "2415", + "typeID": "Arrow", + "zOrder": "35", + "w": "267", + "h": "1", + "measuredW": "150", + "measuredH": "100", + "x": "1137", + "y": "1579", + "properties": { + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": 0, + "y": -0.5 + }, + "p1": { + "x": 0.4734542725983135, + "y": -0.00011162392477927736 + }, + "p2": { + "x": 267.29850098875386, + "y": -0.5 } } }, { - "ID": "1910", - "typeID": "__group__", - "zOrder": "80", - "measuredW": "144", - "measuredH": "40", - "w": "144", - "h": "40", - "x": "1671", - "y": "2588", + "ID": "2416", + "typeID": "Arrow", + "zOrder": "36", + "w": "1", + "h": "108", + "measuredW": "150", + "measuredH": "100", + "x": "1120", + "y": "1464", "properties": { - "controlName": "ext_link:roadmap.sh/docker" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "144", - "h": "40", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "4273622", - "borderColor": "4273622" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "58", - "measuredW": "56", - "measuredH": "25", - "x": "47", - "y": "8", - "properties": { - "size": "17", - "text": "Docker", - "color": "16777215" - } - } - ] + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 0.21279569788953268, + "y": 107.33087955966835 + }, + "p1": { + "x": 0.47345427259831363, + "y": -0.00011162392477927894 + }, + "p2": { + "x": 0.21279569788953268, + "y": -0.3596558928045397 } } }, { - "ID": "1911", - "typeID": "__group__", - "zOrder": "81", - "measuredW": "154", - "measuredH": "40", - "w": "154", - "h": "40", - "x": "1672", - "y": "2544", + "ID": "2417", + "typeID": "Arrow", + "zOrder": "37", + "w": "1", + "h": "129", + "measuredW": "150", + "measuredH": "100", + "x": "1058", + "y": "1587", "properties": { - "controlName": "102-containerization:lxc" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "144", - "h": "40", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "textColor": "6710886", - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "37", - "measuredW": "32", - "measuredH": "25", - "x": "53", - "y": "8", - "properties": { - "color": "3355443", - "size": "17", - "text": "LXC" - } - }, - { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "130", - "y": "8", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "3", - "typeID": "Icon", - "zOrder": "3", - "measuredW": "24", - "measuredH": "24", - "x": "130", - "y": "8", - "properties": { - "icon": { - "ID": "check-circle", - "size": "small" - }, - "color": "3700253" - } - } - ] + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 0.21279569788953268, + "y": 129.33087955966835 + }, + "p1": { + "x": 0.4734542725983137, + "y": -0.00011162392477927875 + }, + "p2": { + "x": 0.21279569788953268, + "y": 0.03075605110257129 } } }, { - "ID": "1912", - "typeID": "__group__", - "zOrder": "82", - "measuredW": "141", - "measuredH": "50", - "w": "141", - "h": "50", - "x": "976", - "y": "2927", + "ID": "2418", + "typeID": "Arrow", + "zOrder": "38", + "w": "214", + "h": "180", + "measuredW": "150", + "measuredH": "100", + "x": "816", + "y": "1586", + "properties": { + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": -0.17347654643435817, + "y": 180.38352203951763 + }, + "p1": { + "x": 0.4387031121915371, + "y": 0.07581196822794485 + }, + "p2": { + "x": 214.2042960399042, + "y": 0.24664368571939121 + } + } + }, + { + "ID": "2419", + "typeID": "Arrow", + "zOrder": "39", + "w": "183", + "h": "125", + "measuredW": "150", + "measuredH": "100", + "x": "811", + "y": "1594", + "properties": { + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 0.36031985801696464, + "y": 124.74401702033128 + }, + "p1": { + "x": 0.47415070546175875, + "y": 0.06172844723948579 + }, + "p2": { + "x": 183.47466727551432, + "y": -0.3096836550328135 + } + } + }, + { + "ID": "2420", + "typeID": "Arrow", + "zOrder": "40", + "w": "186", + "h": "82", + "measuredW": "150", + "measuredH": "100", + "x": "808", + "y": "1591", "properties": { - "controlName": "ext_link:roadmap.sh/graphql" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "141", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "4273622", - "borderColor": "4273622" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "71", - "measuredH": "25", - "x": "35", - "y": "13", - "properties": { - "text": "GraphQL", - "size": "17", - "color": "16777215" - } - } - ] + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 0, + "y": 81.5 + }, + "p1": { + "x": 0.4667037938257157, + "y": 0.05826324141902692 + }, + "p2": { + "x": 186.47466727551432, + "y": -0.2871527187319316 } } }, { - "ID": "1913", - "typeID": "__group__", - "zOrder": "83", - "measuredW": "155", - "measuredH": "40", - "w": "155", + "ID": "2421", + "typeID": "Arrow", + "zOrder": "41", "h": "40", - "x": "975", - "y": "3025", + "measuredW": "150", + "measuredH": "100", + "x": "817", + "y": "1591", "properties": { - "controlName": "100-graphql:apollo" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "144", - "h": "40", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "50", - "measuredW": "48", - "measuredH": "25", - "x": "47", - "y": "7", - "properties": { - "size": "17", - "text": "Apollo" - } - }, - { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "131", - "y": "8", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "3", - "typeID": "Icon", - "zOrder": "3", - "measuredW": "24", - "measuredH": "24", - "x": "131", - "y": "8", - "properties": { - "color": "10027263", - "icon": { - "ID": "check-circle", - "size": "small" - } - } - } - ] + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 0.3152579854152009, + "y": 39.90867964120662 + }, + "p1": { + "x": 0.4665558798140599, + "y": 0.0702975125629915 + }, + "p2": { + "x": 150.67744570222203, + "y": -0.2871527187319316 } } }, { - "ID": "1914", - "typeID": "__group__", - "zOrder": "84", - "measuredW": "153", - "measuredH": "40", - "w": "153", - "h": "40", - "x": "975", - "y": "3069", + "ID": "2422", + "typeID": "Arrow", + "zOrder": "42", + "w": "176", + "h": "1", + "measuredW": "150", + "measuredH": "100", + "x": "804", + "y": "1577", "properties": { - "controlName": "101-graphql:relay-modern" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "144", - "h": "40", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "108", - "measuredW": "107", - "measuredH": "25", - "x": "18", - "y": "7", - "properties": { - "size": "17", - "text": "Relay Modern" - } - }, - { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "129", - "y": "8", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "3", - "typeID": "Icon", - "zOrder": "3", - "measuredW": "24", - "measuredH": "24", - "x": "129", - "y": "8", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "4", - "typeID": "Icon", - "zOrder": "4", - "measuredW": "24", - "measuredH": "24", - "x": "129", - "y": "8", - "properties": { - "color": "3700253", - "icon": { - "ID": "check-circle", - "size": "small" - } - } - } - ] + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 0, + "y": 1.5 + }, + "p1": { + "x": 0.47345427259831363, + "y": -0.00011162392477927848 + }, + "p2": { + "x": 176.21279569788953, + "y": 0.03075605110257129 } } }, { - "ID": "1915", - "typeID": "__group__", - "zOrder": "212", - "measuredW": "200", - "measuredH": "50", - "w": "200", - "h": "50", - "x": "674", - "y": "3019", + "ID": "2423", + "typeID": "Arrow", + "zOrder": "43", + "w": "1", + "h": "239", + "measuredW": "150", + "measuredH": "100", + "x": "1059", + "y": "1336", "properties": { - "controlName": "121-web-sockets" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "95", - "measuredH": "25", - "x": "52", - "y": "12", - "properties": { - "text": "WebSockets", - "size": "17" - } - } - ] + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": 0, + "y": -0.5 + }, + "p1": { + "x": 0.47345427259831346, + "y": -0.00011162392477927806 + }, + "p2": { + "x": 0, + "y": 238.3367674309227 } } }, { - "ID": "1922", - "typeID": "__group__", - "zOrder": "85", - "measuredW": "179", - "measuredH": "40", - "w": "179", - "h": "40", - "x": "975", - "y": "1692", + "ID": "2424", + "typeID": "Arrow", + "zOrder": "44", + "w": "236", + "h": "1", + "measuredW": "150", + "measuredH": "100", + "x": "1135", + "y": "1323", "properties": { - "controlName": "104-apis:authentication:jwt" - }, - "children": { - "controls": { - "control": [ - { - "ID": "1", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "8", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "2", - "typeID": "Icon", - "zOrder": "3", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "8", - "properties": { - "color": "10027263", - "icon": { - "ID": "check-circle", - "size": "small" - } - } - }, - { - "ID": "3", - "typeID": "Canvas", - "zOrder": "0", - "w": "169", - "h": "40", - "measuredW": "100", - "measuredH": "70", - "x": "10", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "4", - "typeID": "Label", - "zOrder": "1", - "measuredW": "35", - "measuredH": "25", - "x": "77", - "y": "7", - "properties": { - "text": "JWT", - "size": "17" - } - } - ] + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": 0, + "y": 0.5 + }, + "p1": { + "x": 0.47345427259831335, + "y": -0.00011162392477927807 + }, + "p2": { + "x": 235.68489507160098, + "y": -0.32512695598120445 } } }, { - "ID": "1925", - "typeID": "__group__", - "zOrder": "86", - "measuredW": "130", - "measuredH": "50", - "w": "130", - "h": "50", - "x": "1332", - "y": "1552", + "ID": "2425", + "typeID": "Arrow", + "zOrder": "45", + "w": "166", + "h": "168", + "measuredW": "150", + "measuredH": "100", + "x": "859", + "y": "1342", "properties": { - "controlName": "110-caching" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "130", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "64", - "measuredH": "25", - "x": "33", - "y": "13", - "properties": { - "text": "Caching", - "size": "17" - } - } - ] + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 0.24202910684186918, + "y": 167.85171934094888 + }, + "p1": { + "x": 0.5187506526383378, + "y": 0.10092669429158865 + }, + "p2": { + "x": 165.86308329089002, + "y": -0.4192717100440859 + } + } + }, + { + "ID": "2426", + "typeID": "Arrow", + "zOrder": "46", + "w": "151", + "h": "125", + "measuredW": "150", + "measuredH": "100", + "x": "862", + "y": "1340", + "properties": { + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": -0.1080340262133177, + "y": 124.80279260288762 + }, + "p1": { + "x": 0.4785842736801959, + "y": 0.11879950919024476 + }, + "p2": { + "x": 150.93836738963864, + "y": 0.25575985648356436 } } }, { - "ID": "1926", - "typeID": "__group__", - "zOrder": "87", - "measuredW": "154", - "measuredH": "40", - "w": "154", - "h": "40", - "x": "1502", - "y": "1400", + "ID": "2427", + "typeID": "Arrow", + "zOrder": "47", + "w": "115", + "h": "81", + "measuredW": "150", + "measuredH": "100", + "x": "863", + "y": "1344", "properties": { - "controlName": "100-caching:server-side:redis" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "144", - "h": "40", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "46", - "measuredW": "45", - "measuredH": "25", - "x": "49", - "y": "8", - "properties": { - "size": "17", - "text": "Redis" - } - }, - { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "130", - "y": "8", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "3", - "typeID": "Icon", - "zOrder": "3", - "measuredW": "24", - "measuredH": "24", - "x": "130", - "y": "8", - "properties": { - "color": "10027263", - "icon": { - "ID": "check-circle", - "size": "small" - } - } - } - ] + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 0.216934407259032, + "y": 81.05373959871622 + }, + "p1": { + "x": 0.44045282407886405, + "y": 0.13711042381893543 + }, + "p2": { + "x": 115.48918811935664, + "y": 0.2306651569006135 } } }, { - "ID": "1927", - "typeID": "__group__", - "zOrder": "88", - "measuredW": "155", - "measuredH": "40", - "w": "155", + "ID": "2428", + "typeID": "Arrow", + "zOrder": "48", + "w": "97", "h": "40", - "x": "1502", - "y": "1445", + "measuredW": "150", + "measuredH": "100", + "x": "859", + "y": "1335", "properties": { - "controlName": "101-caching:server-side:memcached" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "144", - "h": "40", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "96", - "measuredW": "96", - "measuredH": "25", - "x": "28", - "y": "8", - "properties": { - "size": "17", - "text": "Memcached" - } - }, - { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "131", - "y": "9", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "3", - "typeID": "Icon", - "zOrder": "3", - "measuredW": "24", - "measuredH": "24", - "x": "131", - "y": "9", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "4", - "typeID": "Icon", - "zOrder": "4", - "measuredW": "24", - "measuredH": "24", - "x": "131", - "y": "9", - "properties": { - "color": "3700253", - "icon": { - "ID": "check-circle", - "size": "small" - } - } - } - ] + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 0.24202910684186918, + "y": 39.70493912676557 + }, + "p1": { + "x": 0.41485764854624113, + "y": 0.109423049141837 + }, + "p2": { + "x": 96.96472475032601, + "y": -0.044113877406061874 + } + } + }, + { + "ID": "2429", + "typeID": "Arrow", + "zOrder": "49", + "w": "107", + "h": "1", + "measuredW": "150", + "measuredH": "100", + "x": "846", + "y": "1321", + "properties": { + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": 0, + "y": -0.5 + }, + "p1": { + "x": 0.4734542725983134, + "y": -0.00011162392477927755 + }, + "p2": { + "x": 107.31478788338131, + "y": -0.5 + }, + "stroke": "dotted" + } + }, + { + "ID": "2430", + "typeID": "Arrow", + "zOrder": "50", + "w": "140", + "h": "251", + "measuredW": "150", + "measuredH": "100", + "x": "1202", + "y": "1058", + "properties": { + "color": "2848996", + "curvature": "-1", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": 1.733821809662004, + "y": -0.012705872300330157 + }, + "p1": { + "x": 0.6281690675432272, + "y": -0.24735053069351437 + }, + "p2": { + "x": 139.53053889079024, + "y": 250.4063280539806 } } }, { - "ID": "1928", - "typeID": "__group__", - "zOrder": "89", - "measuredW": "129", - "measuredH": "40", - "w": "129", - "h": "40", - "x": "1332", - "y": "1421", + "ID": "2431", + "typeID": "Arrow", + "zOrder": "51", + "w": "1", + "h": "99", + "measuredW": "150", + "measuredH": "100", + "x": "909", + "y": "954", "properties": { - "controlName": "101-caching:server-side" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "129", - "h": "40", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "95", - "measuredW": "90", - "measuredH": "25", - "x": "19", - "y": "8", - "properties": { - "size": "17", - "text": "Server Side" - } - } - ] + "color": "2848996", + "curvature": "-1", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": 0.08262228161265739, + "y": -0.00765522788196904 + }, + "p1": { + "x": 0.46737830066706765, + "y": -0.0036060514395746665 + }, + "p2": { + "x": 0.08262228161265739, + "y": 99.34990461054645 } } }, { - "ID": "1929", - "typeID": "__group__", - "zOrder": "90", - "measuredW": "140", - "measuredH": "40", - "w": "140", - "h": "40", - "x": "1333", - "y": "1464", + "ID": "2432", + "typeID": "Arrow", + "zOrder": "52", + "w": "257", + "h": "1", + "measuredW": "150", + "measuredH": "100", + "x": "909", + "y": "952", "properties": { - "controlName": "102-caching:client-side" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "130", - "h": "40", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "88", - "measuredW": "84", - "measuredH": "25", - "x": "21", - "y": "7", - "properties": { - "size": "17", - "text": "Client Side" - } - }, - { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "116", - "y": "8", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "3", - "typeID": "Icon", - "zOrder": "3", - "measuredW": "24", - "measuredH": "24", - "x": "116", - "y": "8", - "properties": { - "color": "10027263", - "icon": { - "ID": "check-circle", - "size": "small" - } - } - } - ] + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": 0.2658611453201729, + "y": 0.452028801972574 + }, + "p1": { + "x": 0.47345427259831346, + "y": -0.00011162392477927633 + }, + "p2": { + "x": 257.72987682295434, + "y": 0.452028801972574 } } }, { - "ID": "1930", - "typeID": "__group__", - "zOrder": "91", - "measuredW": "139", - "measuredH": "37", - "w": "139", - "h": "37", - "x": "1332", - "y": "1381", - "properties": { - "controlName": "100-caching:cdn" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "129", - "h": "37", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "40", - "measuredW": "38", - "measuredH": "25", - "x": "45", - "y": "6", - "properties": { - "size": "17", - "text": "CDN" - } - }, - { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "115", - "y": "5", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "3", - "typeID": "Icon", - "zOrder": "3", - "measuredW": "24", - "measuredH": "24", - "x": "115", - "y": "5", - "properties": { - "color": "10027263", - "icon": { - "ID": "check-circle", - "size": "small" - } - } - } - ] + "ID": "2433", + "typeID": "Arrow", + "zOrder": "53", + "w": "189", + "h": "129", + "measuredW": "150", + "measuredH": "100", + "x": "1329", + "y": "971", + "properties": { + "color": "2848996", + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 189.29875220380154, + "y": 129.53446090344232 + }, + "p1": { + "x": 0.5173830120100052, + "y": -0.10475991954824745 + }, + "p2": { + "x": -0.0566612271975373, + "y": 0.20186173525848972 } } }, { - "ID": "1932", - "typeID": "__group__", - "zOrder": "92", - "measuredW": "229", - "measuredH": "50", - "w": "229", - "h": "50", - "x": "941", - "y": "1301", + "ID": "2434", + "typeID": "Arrow", + "zOrder": "54", + "w": "173", + "h": "89", + "measuredW": "150", + "measuredH": "100", + "x": "1344", + "y": "965", "properties": { - "controlName": "106-relational-databases" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "229", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "165", - "measuredH": "25", - "x": "32", - "y": "13", - "properties": { - "size": "17", - "text": "Relational Databases" - } - } - ] + "color": "2848996", + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 172.29875220380154, + "y": 88.53446090344232 + }, + "p1": { + "x": 0.5173830120100056, + "y": -0.10475991954824762 + }, + "p2": { + "x": -0.4820084590012357, + "y": -0.42298043210348624 } } }, { - "ID": "1933", - "typeID": "__group__", - "zOrder": "93", - "measuredW": "199", - "measuredH": "40", - "w": "199", - "h": "40", - "x": "668", - "y": "1305", + "ID": "2435", + "typeID": "Arrow", + "zOrder": "55", + "w": "60", + "h": "30", + "measuredW": "150", + "measuredH": "100", + "x": "1444", + "y": "1445", "properties": { - "controlName": "100-relational-databases:postgresql" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "191", - "h": "40", - "measuredW": "200", - "measuredH": "140", - "x": "8", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "96", - "measuredW": "93", - "measuredH": "25", - "x": "56", - "y": "7", - "properties": { - "size": "17", - "text": "PostgreSQL" - } - }, - { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "7", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "3", - "typeID": "Icon", - "zOrder": "3", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "7", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "4", - "typeID": "Icon", - "zOrder": "4", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "7", - "properties": { - "color": "10027263", - "icon": { - "ID": "check-circle", - "size": "small" - } - } - } - ] + "color": "2848996", + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 60.31920991767379, + "y": 30.162697528578974 + }, + "p1": { + "x": 0.38469222125109326, + "y": -0.13210138594081827 + }, + "p2": { + "x": 0.32605804231866387, + "y": -0.07999046131453724 + } + } + }, + { + "ID": "2436", + "typeID": "Arrow", + "zOrder": "56", + "w": "61", + "h": "24", + "measuredW": "150", + "measuredH": "100", + "x": "1448", + "y": "1409", + "properties": { + "color": "2848996", + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 61.039807248761235, + "y": 0.07433489335426202 + }, + "p1": { + "x": 0.46208226221079857, + "y": 0.11053984575835622 + }, + "p2": { + "x": 0.4878500355812321, + "y": 24.3979188798794 + } + } + }, + { + "ID": "2437", + "typeID": "Arrow", + "zOrder": "57", + "w": "1", + "h": "76", + "measuredW": "150", + "measuredH": "100", + "x": "1751", + "y": "2482", + "properties": { + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 0, + "y": 76.34691492882303 + }, + "p1": { + "x": 0.5702216182256714, + "y": -0.004517251466967862 + }, + "p2": { + "x": 0, + "y": 0.4406451246140932 } } }, { - "ID": "1934", - "typeID": "__group__", - "zOrder": "94", - "measuredW": "199", - "measuredH": "40", - "w": "199", - "h": "40", - "x": "668", - "y": "1350", + "ID": "2438", + "typeID": "Arrow", + "zOrder": "58", + "w": "1", + "h": "83", + "measuredW": "150", + "measuredH": "100", + "x": "1328", + "y": "1054", "properties": { - "controlName": "101-relational-databases:mysql" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "191", - "h": "40", - "measuredW": "200", - "measuredH": "140", - "x": "8", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "60", - "measuredW": "56", - "measuredH": "25", - "x": "74", - "y": "7", - "properties": { - "size": "17", - "text": "MySQL" - } - }, - { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "7", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "3", - "typeID": "Icon", - "zOrder": "3", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "7", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "4", - "typeID": "Icon", - "zOrder": "4", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "7", - "properties": { - "color": "3700253", - "icon": { - "ID": "check-circle", - "size": "small" - } - } - } - ] + "color": "2848996", + "curvature": "-1", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": -0.24980034602958767, + "y": 83.20762430962418 + }, + "p1": { + "x": 0.5, + "y": 0 + }, + "p2": { + "x": -0.24980034602958767, + "y": 0.43870807682526447 } } }, { - "ID": "1935", - "typeID": "__group__", - "zOrder": "95", - "measuredW": "199", - "measuredH": "40", - "w": "199", - "h": "40", - "x": "668", - "y": "1395", + "ID": "2439", + "typeID": "Arrow", + "zOrder": "59", + "w": "189", + "h": "26", + "measuredW": "150", + "measuredH": "100", + "x": "1336", + "y": "948", "properties": { - "controlName": "102-relational-databases:mariadb" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "191", - "h": "40", - "measuredW": "200", - "measuredH": "140", - "x": "8", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "69", - "measuredH": "25", - "x": "69", - "y": "7", - "properties": { - "size": "17", - "text": "MariaDB" - } - }, - { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "7", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "3", - "typeID": "Icon", - "zOrder": "3", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "7", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "4", - "typeID": "Icon", - "zOrder": "4", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "7", - "properties": { - "color": "3700253", - "icon": { - "ID": "check-circle", - "size": "small" - } - } - } - ] + "color": "2848996", + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 188.1515397158321, + "y": 26.337543700961987 + }, + "p1": { + "x": 0.47995321703110466, + "y": -0.07212649611970283 + }, + "p2": { + "x": -0.43181905983556135, + "y": 4.652303666645025 + } + } + }, + { + "ID": "2440", + "typeID": "Arrow", + "zOrder": "60", + "w": "166", + "h": "56", + "measuredW": "150", + "measuredH": "100", + "x": "1351", + "y": "872", + "properties": { + "color": "2848996", + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 166.53718413209776, + "y": 0.4764677114528695 + }, + "p1": { + "x": 0.46937049176096135, + "y": 0.08997514266115965 + }, + "p2": { + "x": 0.46780214183309, + "y": 56.80287186414216 } } }, { - "ID": "1936", - "typeID": "__group__", - "zOrder": "96", - "measuredW": "199", - "measuredH": "40", - "w": "199", - "h": "40", - "x": "668", - "y": "1440", + "ID": "2441", + "typeID": "Arrow", + "zOrder": "61", + "w": "167", + "h": "21", + "measuredW": "150", + "measuredH": "100", + "x": "1349", + "y": "918", "properties": { - "controlName": "103-relational-databases:mssql" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "191", - "h": "40", - "measuredW": "200", - "measuredH": "140", - "x": "8", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "67", - "measuredW": "63", - "measuredH": "25", - "x": "70", - "y": "8", - "properties": { - "size": "17", - "text": "MS SQL" - } - }, - { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "7", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "3", - "typeID": "Icon", - "zOrder": "3", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "7", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "4", - "typeID": "Icon", - "zOrder": "4", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "7", - "properties": { - "color": "3700253", - "icon": { - "ID": "check-circle", - "size": "small" - } - } - } - ] + "color": "2848996", + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 166.76388789240877, + "y": 0.20312439636302315 + }, + "p1": { + "x": 0.4153666146645862, + "y": 0.03354134165366616 + }, + "p2": { + "x": -0.18213472511160944, + "y": 21.402619331921187 } } }, { - "ID": "1937", - "typeID": "__group__", - "zOrder": "97", - "measuredW": "199", - "measuredH": "40", - "w": "199", - "h": "40", - "x": "668", - "y": "1486", + "ID": "2442", + "typeID": "Arrow", + "zOrder": "62", + "w": "174", + "h": "99", + "measuredW": "150", + "measuredH": "100", + "x": "1519", + "y": "1206", "properties": { - "controlName": "104-relational-databases:oracle" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "191", - "h": "40", - "measuredW": "200", - "measuredH": "140", - "x": "8", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "54", - "measuredW": "52", - "measuredH": "25", - "x": "77", - "y": "8", - "properties": { - "size": "17", - "text": "Oracle" - } - }, - { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "8", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "3", - "typeID": "Icon", - "zOrder": "3", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "8", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "4", - "typeID": "Icon", - "zOrder": "4", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "8", - "properties": { - "color": "3700253", - "icon": { - "ID": "check-circle", - "size": "small" - } - } - } - ] + "curvature": "0", + "rightArrow": "false", + "leftArrow": "false", + "color": "10027263", + "stroke": "dotted", + "p0": { + "x": -0.4945558087927111, + "y": 99.40759071508523 + }, + "p1": { + "x": 0.4991402865711436, + "y": -0.13680773075641436 + }, + "p2": { + "x": 173.69874920774737, + "y": 0.19861969047110506 + } + } + }, + { + "ID": "2443", + "typeID": "Arrow", + "zOrder": "63", + "w": "177", + "h": "54", + "measuredW": "150", + "measuredH": "100", + "x": "1516", + "y": "1263", + "properties": { + "curvature": "0", + "rightArrow": "false", + "leftArrow": "false", + "color": "10027263", + "stroke": "dotted", + "p0": { + "x": -0.14449267573741054, + "y": 54.33230661633661 + }, + "p1": { + "x": 0.5049653579676676, + "y": -0.08879907621247117 + }, + "p2": { + "x": 176.69874920774737, + "y": 0.08207771058664548 } } }, { - "ID": "1938", - "typeID": "__group__", - "zOrder": "98", - "measuredW": "214", - "measuredH": "50", - "w": "214", - "h": "50", - "x": "1188", - "y": "2924", + "ID": "2444", + "typeID": "Arrow", + "zOrder": "64", + "w": "189", + "h": "5", + "measuredW": "150", + "measuredH": "100", + "x": "1520", + "y": "1323", "properties": { - "controlName": "107-nosql-databases" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "214", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "143", - "measuredH": "25", - "x": "35", - "y": "12", - "properties": { - "text": "NoSQL Databases", - "size": "17" - } - } - ] + "curvature": "0", + "rightArrow": "false", + "leftArrow": "false", + "color": "10027263", + "stroke": "dotted", + "p0": { + "x": -0.1695873753203614, + "y": 4.932054084115634 + }, + "p1": { + "x": 0.5, + "y": 0 + }, + "p2": { + "x": 188.57320260870983, + "y": -0.3887220358042214 } } }, { - "ID": "1939", - "typeID": "__group__", - "zOrder": "99", - "measuredW": "213", - "measuredH": "40", - "w": "213", - "h": "40", - "x": "674", - "y": "2262", + "ID": "2445", + "typeID": "Arrow", + "zOrder": "65", + "w": "236", + "h": "1", + "measuredW": "150", + "measuredH": "100", + "x": "923", + "y": "1047", "properties": { - "controlName": "101-more-about-databases:acid" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "206", - "h": "40", - "measuredW": "200", - "measuredH": "140", - "x": "7", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "43", - "measuredW": "40", - "measuredH": "25", - "x": "88", - "y": "7", - "properties": { - "size": "17", - "text": "ACID" - } - }, - { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "8", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "3", - "typeID": "Icon", - "zOrder": "3", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "8", - "properties": { - "color": "10027263", - "icon": { - "ID": "check-circle", - "size": "small" - } - } - } - ] + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": 0, + "y": 0.5 + }, + "p1": { + "x": 0.47345427259831335, + "y": -0.00011162392477927807 + }, + "p2": { + "x": 235.68489507160098, + "y": -0.32512695598120445 } } }, { - "ID": "1940", - "typeID": "__group__", - "zOrder": "100", - "measuredW": "211", - "measuredH": "50", - "w": "211", - "h": "50", - "x": "679", - "y": "2130", + "ID": "2446", + "typeID": "Arrow", + "zOrder": "66", + "w": "1", + "h": "90", + "measuredW": "150", + "measuredH": "100", + "x": "910", + "y": "1052", "properties": { - "controlName": "108-more-about-databases" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "211", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "176", - "measuredH": "25", - "x": "18", - "y": "13", - "properties": { - "text": "More about Databases", - "size": "17" - } - } - ] + "color": "2848996", + "curvature": "-1", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": -0.24980034602958767, + "y": 89.04191001796403 + }, + "p1": { + "x": 0.49999999999999994, + "y": 0 + }, + "p2": { + "x": -0.24980034602958767, + "y": -0.47695781458287456 + } + } + }, + { + "ID": "2447", + "typeID": "Arrow", + "zOrder": "67", + "w": "1", + "h": "172", + "measuredW": "150", + "measuredH": "100", + "x": "746", + "y": "969", + "properties": { + "color": "2848996", + "curvature": "-1", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": -0.24980034602958767, + "y": 172.04191001796403 + }, + "p1": { + "x": 0.5, + "y": 0 + }, + "p2": { + "x": -0.24980034602958767, + "y": 0.24952581221509718 } } }, { - "ID": "1941", - "typeID": "__group__", - "zOrder": "101", - "measuredW": "213", - "measuredH": "40", - "w": "213", - "h": "40", - "x": "674", - "y": "2306", + "ID": "2448", + "typeID": "Arrow", + "zOrder": "68", + "w": "1", + "h": "113", + "measuredW": "150", + "measuredH": "100", + "x": "1299", + "y": "3757", "properties": { - "controlName": "102-more-about-databases:transactions" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "206", - "h": "40", - "measuredW": "200", - "measuredH": "140", - "x": "7", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "105", - "measuredW": "99", - "measuredH": "25", - "x": "57", - "y": "7", - "properties": { - "size": "17", - "text": "Transactions" - } - }, - { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "8", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "3", - "typeID": "Icon", - "zOrder": "3", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "8", - "properties": { - "color": "10027263", - "icon": { - "ID": "check-circle", - "size": "small" - } - } - } - ] + "color": "2848996", + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 1, + "y": 112.58154962364824 + }, + "p1": { + "x": 0.4072427393330942, + "y": 0.00953746862674794 + }, + "p2": { + "x": 1, + "y": 0 } } }, { - "ID": "1942", + "ID": "2449", "typeID": "__group__", - "zOrder": "102", - "measuredW": "213", - "measuredH": "40", - "w": "213", - "h": "40", - "x": "674", - "y": "2350", + "zOrder": "69", + "measuredW": "200", + "measuredH": "50", + "w": "200", + "h": "50", + "x": "1005", + "y": "2463", "properties": { - "controlName": "103-more-about-databases:n-plus-one-problem" + "controlName": "115-architectural-patterns" }, "children": { "controls": { @@ -3003,139 +2215,26 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "206", - "h": "40", + "h": "50", "measuredW": "200", "measuredH": "140", - "x": "7", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "99", - "measuredH": "25", - "x": "60", - "y": "7", - "properties": { - "text": "N+1 Problem", - "size": "17" - } - }, - { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "8", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "3", - "typeID": "Icon", - "zOrder": "3", - "measuredW": "24", - "measuredH": "24", "x": "0", - "y": "8", - "properties": { - "color": "10027263", - "icon": { - "ID": "check-circle", - "size": "small" - } - } - } - ] - } - } - }, - { - "ID": "1943", - "typeID": "__group__", - "zOrder": "210", - "measuredW": "215", - "measuredH": "40", - "w": "215", - "h": "40", - "x": "672", - "y": "1895", - "properties": { - "controlName": "102-scaling-databases:sharding-strategies" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "208", - "h": "40", - "measuredW": "200", - "measuredH": "140", - "x": "7", "y": "0", "properties": { - "color": "16770457" + "color": "16776960" } }, { "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "155", - "measuredW": "151", + "measuredW": "166", "measuredH": "25", - "x": "33", - "y": "7", - "properties": { - "size": "17", - "text": "Sharding Strategies" - } - }, - { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "7", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "3", - "typeID": "Icon", - "zOrder": "3", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "7", + "x": "17", + "y": "13", "properties": { - "color": "10066329", - "icon": { - "ID": "check-circle", - "size": "small" - } + "text": "Architectural Patterns", + "size": "17" } } ] @@ -3143,17 +2242,17 @@ } }, { - "ID": "1944", + "ID": "2450", "typeID": "__group__", - "zOrder": "103", - "measuredW": "215", + "zOrder": "70", + "measuredW": "209", "measuredH": "40", - "w": "215", + "w": "209", "h": "40", - "x": "672", - "y": "2394", + "x": "1005", + "y": "2546", "properties": { - "controlName": "104-more-about-databases:database-normalization" + "controlName": "100-architectural-patterns:monolithic-apps" }, "children": { "controls": { @@ -3162,11 +2261,11 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "206", + "w": "202", "h": "40", "measuredW": "200", "measuredH": "140", - "x": "9", + "x": "0", "y": "0", "properties": { "color": "16770457" @@ -3176,13 +2275,14 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "107", + "w": "123", + "measuredW": "123", "measuredH": "25", - "x": "58", + "x": "39", "y": "7", "properties": { "size": "17", - "text": "Normalization" + "text": "Monolithic Apps" } }, { @@ -3191,7 +2291,7 @@ "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "0", + "x": "185", "y": "8", "properties": { "color": "16777215", @@ -3207,7 +2307,7 @@ "zOrder": "3", "measuredW": "24", "measuredH": "24", - "x": "0", + "x": "185", "y": "8", "properties": { "color": "10027263", @@ -3222,17 +2322,17 @@ } }, { - "ID": "1945", + "ID": "2451", "typeID": "__group__", - "zOrder": "209", - "measuredW": "218", - "measuredH": "40", - "w": "218", - "h": "40", - "x": "670", - "y": "1852", + "zOrder": "71", + "measuredW": "209", + "measuredH": "37", + "w": "209", + "h": "37", + "x": "1005", + "y": "2588", "properties": { - "controlName": "101-scaling-databases:data-replication" + "controlName": "101-architectural-patterns:microservices" }, "children": { "controls": { @@ -3241,11 +2341,11 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "208", - "h": "40", + "w": "202", + "h": "37", "measuredW": "200", "measuredH": "140", - "x": "10", + "x": "0", "y": "0", "properties": { "color": "16770457" @@ -3255,14 +2355,14 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "129", - "measuredW": "128", + "w": "112", + "measuredW": "108", "measuredH": "25", - "x": "49", - "y": "7", + "x": "45", + "y": "6", "properties": { "size": "17", - "text": "Data Replication" + "text": "Microservices" } }, { @@ -3271,8 +2371,8 @@ "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "0", - "y": "8", + "x": "185", + "y": "7", "properties": { "color": "16777215", "icon": { @@ -3287,10 +2387,10 @@ "zOrder": "3", "measuredW": "24", "measuredH": "24", - "x": "0", - "y": "8", + "x": "185", + "y": "7", "properties": { - "color": "10066329", + "color": "10027263", "icon": { "ID": "check-circle", "size": "small" @@ -3302,17 +2402,17 @@ } }, { - "ID": "1946", + "ID": "2452", "typeID": "__group__", - "zOrder": "104", - "measuredW": "218", - "measuredH": "40", - "w": "218", - "h": "40", - "x": "670", - "y": "1810", + "zOrder": "72", + "measuredW": "209", + "measuredH": "37", + "w": "209", + "h": "37", + "x": "1005", + "y": "2628", "properties": { - "controlName": "100-scaling-databases:database-indexes" + "controlName": "102-architectural-patterns:soa" }, "children": { "controls": { @@ -3321,11 +2421,11 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "208", - "h": "40", + "w": "202", + "h": "37", "measuredW": "200", "measuredH": "140", - "x": "10", + "x": "0", "y": "0", "properties": { "color": "16770457" @@ -3335,13 +2435,14 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "140", + "w": "38", + "measuredW": "34", "measuredH": "25", - "x": "44", - "y": "7", + "x": "103", + "y": "6", "properties": { "size": "17", - "text": "Database Indexes" + "text": "SOA" } }, { @@ -3350,8 +2451,8 @@ "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "0", - "y": "8", + "x": "185", + "y": "7", "properties": { "color": "16777215", "icon": { @@ -3366,8 +2467,8 @@ "zOrder": "3", "measuredW": "24", "measuredH": "24", - "x": "0", - "y": "8", + "x": "185", + "y": "7", "properties": { "color": "10027263", "icon": { @@ -3381,17 +2482,17 @@ } }, { - "ID": "1947", + "ID": "2453", "typeID": "__group__", - "zOrder": "105", - "measuredW": "212", + "zOrder": "73", + "measuredW": "182", "measuredH": "50", - "w": "212", + "w": "182", "h": "50", - "x": "945", - "y": "1554", + "x": "1284", + "y": "2463", "properties": { - "controlName": "109-apis" + "controlName": "117-message-brokers" }, "children": { "controls": { @@ -3400,7 +2501,7 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "212", + "w": "182", "h": "50", "measuredW": "200", "measuredH": "140", @@ -3414,93 +2515,14 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "133", - "measuredH": "25", - "x": "39", - "y": "13", - "properties": { - "text": "Learn about APIs", - "size": "17" - } - } - ] - } - } - }, - { - "ID": "1948", - "typeID": "__group__", - "zOrder": "106", - "measuredW": "157", - "measuredH": "40", - "w": "157", - "h": "40", - "x": "668", - "y": "1562", - "properties": { - "controlName": "100-apis:rest" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "146", - "h": "40", - "measuredW": "200", - "measuredH": "140", - "x": "11", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "49", - "measuredW": "44", + "w": "141", + "measuredW": "136", "measuredH": "25", - "x": "59", - "y": "7", + "x": "20", + "y": "12", "properties": { "size": "17", - "text": "REST" - } - }, - { - "ID": "3", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "8", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "4", - "typeID": "Icon", - "zOrder": "3", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "8", - "properties": { - "color": "10027263", - "icon": { - "ID": "check-circle", - "size": "small" - } + "text": "Message Brokers" } } ] @@ -3508,17 +2530,17 @@ } }, { - "ID": "1949", + "ID": "2454", "typeID": "__group__", - "zOrder": "107", - "measuredW": "157", - "measuredH": "40", - "w": "157", - "h": "40", - "x": "668", - "y": "1607", + "zOrder": "74", + "measuredW": "305", + "measuredH": "50", + "w": "305", + "h": "50", + "x": "1516", + "y": "2465", "properties": { - "controlName": "101-apis:json-apis" + "controlName": "118-containerization" }, "children": { "controls": { @@ -3527,60 +2549,27 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "146", - "h": "40", + "w": "305", + "h": "50", "measuredW": "200", "measuredH": "140", - "x": "11", + "x": "0", "y": "0", "properties": { - "color": "16770457" + "color": "16776960" } }, { "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "90", - "measuredW": "85", + "measuredW": "250", "measuredH": "25", - "x": "39", - "y": "7", - "properties": { - "size": "17", - "text": "JSON APIs" - } - }, - { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "8", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "3", - "typeID": "Icon", - "zOrder": "3", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "8", + "x": "28", + "y": "13", "properties": { - "color": "10027263", - "icon": { - "ID": "check-circle", - "size": "small" - } + "text": "Containerization vs Virtualization", + "size": "17" } } ] @@ -3588,17 +2577,17 @@ } }, { - "ID": "1950", + "ID": "2455", "typeID": "__group__", - "zOrder": "108", - "measuredW": "155", - "measuredH": "40", - "w": "155", - "h": "40", - "x": "670", - "y": "1652", + "zOrder": "75", + "measuredW": "197", + "measuredH": "50", + "w": "197", + "h": "50", + "x": "678", + "y": "2786", "properties": { - "controlName": "102-apis:soap" + "controlName": "122-web-servers" }, "children": { "controls": { @@ -3607,60 +2596,27 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "145", - "h": "40", + "w": "197", + "h": "50", "measuredW": "200", "measuredH": "140", - "x": "10", + "x": "0", "y": "0", "properties": { - "color": "16770457" + "color": "16776960" } }, { "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "49", - "measuredW": "44", + "measuredW": "98", "measuredH": "25", - "x": "58", - "y": "7", - "properties": { - "size": "17", - "text": "SOAP" - } - }, - { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "8", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "3", - "typeID": "Icon", - "zOrder": "3", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "8", + "x": "50", + "y": "13", "properties": { - "color": "10066329", - "icon": { - "ID": "check-circle", - "size": "small" - } + "text": "Web Servers", + "size": "17" } } ] @@ -3668,17 +2624,17 @@ } }, { - "ID": "1951", + "ID": "2456", "typeID": "__group__", - "zOrder": "109", - "measuredW": "201", + "zOrder": "76", + "measuredW": "153", "measuredH": "40", - "w": "201", + "w": "153", "h": "40", - "x": "1082", - "y": "1412", + "x": "671", + "y": "2572", "properties": { - "controlName": "104-apis:hateoas" + "controlName": "100-web-servers:nginx" }, "children": { "controls": { @@ -3687,11 +2643,11 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "190", + "w": "144", "h": "40", "measuredW": "200", "measuredH": "140", - "x": "0", + "x": "9", "y": "0", "properties": { "color": "16770457" @@ -3701,14 +2657,14 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "78", - "measuredW": "76", + "w": "46", + "measuredW": "45", "measuredH": "25", - "x": "56", + "x": "58", "y": "7", "properties": { "size": "17", - "text": "HATEOAS" + "text": "Nginx" } }, { @@ -3717,7 +2673,7 @@ "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "177", + "x": "0", "y": "8", "properties": { "color": "16777215", @@ -3733,10 +2689,10 @@ "zOrder": "3", "measuredW": "24", "measuredH": "24", - "x": "177", + "x": "0", "y": "8", "properties": { - "color": "10066329", + "color": "10027263", "icon": { "ID": "check-circle", "size": "small" @@ -3748,17 +2704,17 @@ } }, { - "ID": "1952", + "ID": "2457", "typeID": "__group__", - "zOrder": "110", - "measuredW": "201", + "zOrder": "77", + "measuredW": "153", "measuredH": "40", - "w": "201", + "w": "153", "h": "40", - "x": "1082", - "y": "1448", + "x": "671", + "y": "2617", "properties": { - "controlName": "105-apis:open-api-spec" + "controlName": "101-web-servers:apache" }, "children": { "controls": { @@ -3767,11 +2723,11 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "190", + "w": "144", "h": "40", "measuredW": "200", "measuredH": "140", - "x": "0", + "x": "9", "y": "0", "properties": { "color": "16770457" @@ -3781,13 +2737,14 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "126", + "w": "60", + "measuredW": "59", "measuredH": "25", - "x": "32", + "x": "51", "y": "7", "properties": { "size": "17", - "text": "Open API Specs" + "text": "Apache" } }, { @@ -3796,7 +2753,7 @@ "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "177", + "x": "0", "y": "8", "properties": { "color": "16777215", @@ -3812,10 +2769,26 @@ "zOrder": "3", "measuredW": "24", "measuredH": "24", - "x": "177", + "x": "0", "y": "8", "properties": { - "color": "10066329", + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "4", + "typeID": "Icon", + "zOrder": "4", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "3700253", "icon": { "ID": "check-circle", "size": "small" @@ -3827,17 +2800,17 @@ } }, { - "ID": "1953", + "ID": "2458", "typeID": "__group__", - "zOrder": "211", - "measuredW": "216", + "zOrder": "78", + "measuredW": "153", "measuredH": "40", - "w": "216", + "w": "153", "h": "40", - "x": "672", - "y": "1938", + "x": "671", + "y": "2663", "properties": { - "controlName": "103-scaling-databases:cap-theorem" + "controlName": "102-web-servers:caddy" }, "children": { "controls": { @@ -3846,11 +2819,11 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "208", + "w": "144", "h": "40", "measuredW": "200", "measuredH": "140", - "x": "8", + "x": "9", "y": "0", "properties": { "color": "16770457" @@ -3860,14 +2833,14 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "109", - "measuredW": "107", + "w": "53", + "measuredW": "49", "measuredH": "25", - "x": "57", + "x": "54", "y": "7", "properties": { "size": "17", - "text": "CAP Theorem" + "text": "Caddy" } }, { @@ -3895,103 +2868,27 @@ "x": "0", "y": "8", "properties": { - "color": "10066329", - "icon": { - "ID": "check-circle", - "size": "small" - } - } - } - ] - } - } - }, - { - "ID": "1954", - "typeID": "__group__", - "zOrder": "111", - "measuredW": "170", - "measuredH": "50", - "w": "170", - "h": "50", - "x": "985", - "y": "1645", - "properties": { - "controlName": "106-apis:authentication" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "170", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0" - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "111", - "measuredW": "111", - "measuredH": "25", - "x": "29", - "y": "12", - "properties": { - "size": "17", - "text": "Authentication" - } - } - ] - } - } - }, - { - "ID": "1955", - "typeID": "__group__", - "zOrder": "112", - "measuredW": "240", - "measuredH": "54", - "w": "240", - "h": "54", - "x": "1581", - "y": "1762", - "properties": { - "controlName": "111-web-security-knowledge" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "240", - "h": "54", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } } }, { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "189", - "measuredH": "25", - "x": "25", - "y": "15", + "ID": "4", + "typeID": "Icon", + "zOrder": "4", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", "properties": { - "size": "17", - "text": "Web Security Knowledge" + "color": "3700253", + "icon": { + "ID": "check-circle", + "size": "small" + } } } ] @@ -3999,28 +2896,17 @@ } }, { - "ID": "1956", - "typeID": "TextArea", - "zOrder": "113", - "w": "270", - "h": "192", - "measuredW": "200", - "measuredH": "140", - "x": "1552", - "y": "1526" - }, - { - "ID": "1957", + "ID": "2459", "typeID": "__group__", - "zOrder": "114", - "measuredW": "239", + "zOrder": "79", + "measuredW": "152", "measuredH": "40", - "w": "239", + "w": "152", "h": "40", - "x": "1567", - "y": "1541", + "x": "671", + "y": "2708", "properties": { - "controlName": "100-web-security-knowledge:md5" + "controlName": "103-web-servers:ms-iis" }, "children": { "controls": { @@ -4029,11 +2915,11 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "239", + "w": "144", "h": "40", "measuredW": "200", "measuredH": "140", - "x": "0", + "x": "8", "y": "0", "properties": { "color": "16770457" @@ -4043,14 +2929,62 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "203", - "measuredW": "197", + "w": "55", + "measuredW": "51", "measuredH": "25", - "x": "20", - "y": "8", + "x": "57", + "y": "7", "properties": { "size": "17", - "text": "MD5 and why not to use it" + "text": "MS IIS" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "4", + "typeID": "Icon", + "zOrder": "4", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "3700253", + "icon": { + "ID": "check-circle", + "size": "small" + } } } ] @@ -4058,17 +2992,17 @@ } }, { - "ID": "1958", + "ID": "2460", "typeID": "__group__", - "zOrder": "115", - "measuredW": "237", + "zOrder": "80", + "measuredW": "144", "measuredH": "40", - "w": "237", + "w": "144", "h": "40", - "x": "1568", - "y": "1586", + "x": "1671", + "y": "2588", "properties": { - "controlName": "101-web-security-knowledge:sha-family" + "controlName": "ext_link:roadmap.sh/docker" }, "children": { "controls": { @@ -4077,28 +3011,30 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "237", + "w": "144", "h": "40", "measuredW": "200", "measuredH": "140", "x": "0", "y": "0", "properties": { - "color": "16770457" + "color": "4273622", + "borderColor": "4273622" } }, { "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "93", - "measuredW": "87", + "w": "58", + "measuredW": "56", "measuredH": "25", - "x": "72", - "y": "7", + "x": "47", + "y": "8", "properties": { "size": "17", - "text": "SHA Family" + "text": "Docker", + "color": "16777215" } } ] @@ -4106,17 +3042,17 @@ } }, { - "ID": "1959", + "ID": "2461", "typeID": "__group__", - "zOrder": "116", - "measuredW": "119", + "zOrder": "81", + "measuredW": "154", "measuredH": "40", - "w": "119", + "w": "154", "h": "40", - "x": "1569", - "y": "1632", + "x": "1672", + "y": "2544", "properties": { - "controlName": "104-web-security-knowledge:scrypt" + "controlName": "102-containerization:lxc" }, "children": { "controls": { @@ -4125,13 +3061,14 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "119", + "w": "144", "h": "40", "measuredW": "200", "measuredH": "140", "x": "0", "y": "0", "properties": { + "textColor": "6710886", "color": "16770457" } }, @@ -4139,14 +3076,47 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "62", - "measuredW": "47", + "w": "37", + "measuredW": "32", "measuredH": "25", - "x": "38", - "y": "7", + "x": "53", + "y": "8", "properties": { + "color": "3355443", "size": "17", - "text": "scrypt" + "text": "LXC" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "130", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "130", + "y": "8", + "properties": { + "icon": { + "ID": "check-circle", + "size": "small" + }, + "color": "3700253" } } ] @@ -4154,17 +3124,17 @@ } }, { - "ID": "1960", + "ID": "2462", "typeID": "__group__", - "zOrder": "117", - "measuredW": "111", - "measuredH": "40", - "w": "111", - "h": "40", - "x": "1695", - "y": "1632", + "zOrder": "82", + "measuredW": "141", + "measuredH": "50", + "w": "141", + "h": "50", + "x": "976", + "y": "2927", "properties": { - "controlName": "102-web-security-knowledge:bcrypt" + "controlName": "ext_link:roadmap.sh/graphql" }, "children": { "controls": { @@ -4173,28 +3143,29 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "111", - "h": "40", + "w": "141", + "h": "50", "measuredW": "200", "measuredH": "140", "x": "0", "y": "0", "properties": { - "color": "16770457" + "color": "4273622", + "borderColor": "4273622" } }, { "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "53", - "measuredW": "48", + "measuredW": "71", "measuredH": "25", "x": "35", - "y": "7", + "y": "13", "properties": { + "text": "GraphQL", "size": "17", - "text": "bcrypt" + "color": "16777215" } } ] @@ -4202,31 +3173,17 @@ } }, { - "ID": "1961", - "typeID": "Label", - "zOrder": "118", - "w": "155", - "measuredW": "149", - "measuredH": "25", - "x": "1609", - "y": "1680", - "properties": { - "size": "17", - "text": "Hashing Algorithms" - } - }, - { - "ID": "1963", + "ID": "2463", "typeID": "__group__", - "zOrder": "205", - "measuredW": "195", - "measuredH": "50", - "w": "195", - "h": "50", - "x": "1293", - "y": "2008", + "zOrder": "83", + "measuredW": "155", + "measuredH": "40", + "w": "155", + "h": "40", + "x": "975", + "y": "3025", "properties": { - "controlName": "112-testing" + "controlName": "100-graphql:apollo" }, "children": { "controls": { @@ -4235,27 +3192,60 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "195", - "h": "50", + "w": "144", + "h": "40", "measuredW": "200", "measuredH": "140", "x": "0", "y": "0", "properties": { - "color": "16776960" + "color": "16770457" } }, { "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "56", + "w": "50", + "measuredW": "48", "measuredH": "25", - "x": "70", - "y": "13", + "x": "47", + "y": "7", "properties": { - "text": "Testing", - "size": "17" + "size": "17", + "text": "Apollo" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "131", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "131", + "y": "8", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } } } ] @@ -4263,17 +3253,17 @@ } }, { - "ID": "1964", + "ID": "2464", "typeID": "__group__", - "zOrder": "206", - "measuredW": "223", + "zOrder": "84", + "measuredW": "153", "measuredH": "40", - "w": "223", + "w": "153", "h": "40", - "x": "1278", - "y": "2093", + "x": "975", + "y": "3069", "properties": { - "controlName": "100-testing:integration-testing" + "controlName": "101-graphql:relay-modern" }, "children": { "controls": { @@ -4282,7 +3272,7 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "212", + "w": "144", "h": "40", "measuredW": "200", "measuredH": "140", @@ -4296,14 +3286,14 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "150", - "measuredW": "144", + "w": "108", + "measuredW": "107", "measuredH": "25", - "x": "31", + "x": "18", "y": "7", "properties": { "size": "17", - "text": "Integration Testing" + "text": "Relay Modern" } }, { @@ -4312,8 +3302,8 @@ "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "199", - "y": "7", + "x": "129", + "y": "8", "properties": { "color": "16777215", "icon": { @@ -4328,8 +3318,76 @@ "zOrder": "3", "measuredW": "24", "measuredH": "24", - "x": "199", - "y": "7", + "x": "129", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "4", + "typeID": "Icon", + "zOrder": "4", + "measuredW": "24", + "measuredH": "24", + "x": "129", + "y": "8", + "properties": { + "color": "3700253", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "2465", + "typeID": "__group__", + "zOrder": "85", + "measuredW": "179", + "measuredH": "40", + "w": "179", + "h": "40", + "x": "975", + "y": "1692", + "properties": { + "controlName": "104-apis:authentication:jwt" + }, + "children": { + "controls": { + "control": [ + { + "ID": "1", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", "properties": { "color": "10027263", "icon": { @@ -4337,23 +3395,50 @@ "size": "small" } } + }, + { + "ID": "3", + "typeID": "Canvas", + "zOrder": "0", + "w": "169", + "h": "40", + "measuredW": "100", + "measuredH": "70", + "x": "10", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "4", + "typeID": "Label", + "zOrder": "1", + "measuredW": "35", + "measuredH": "25", + "x": "77", + "y": "7", + "properties": { + "text": "JWT", + "size": "17" + } } ] } } }, { - "ID": "1965", + "ID": "2466", "typeID": "__group__", - "zOrder": "207", - "measuredW": "224", - "measuredH": "37", - "w": "224", - "h": "37", - "x": "1276", - "y": "2136", + "zOrder": "86", + "measuredW": "130", + "measuredH": "50", + "w": "130", + "h": "50", + "x": "1332", + "y": "1552", "properties": { - "controlName": "101-testing:unit-testing" + "controlName": "110-caching" }, "children": { "controls": { @@ -4362,8 +3447,55 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "214", - "h": "37", + "w": "130", + "h": "50", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "64", + "measuredH": "25", + "x": "33", + "y": "13", + "properties": { + "text": "Caching", + "size": "17" + } + } + ] + } + } + }, + { + "ID": "2467", + "typeID": "__group__", + "zOrder": "87", + "measuredW": "154", + "measuredH": "40", + "w": "154", + "h": "40", + "x": "1502", + "y": "1400", + "properties": { + "controlName": "100-caching:server-side:redis" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "144", + "h": "40", "measuredW": "200", "measuredH": "140", "x": "0", @@ -4376,14 +3508,14 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "99", - "measuredW": "91", + "w": "46", + "measuredW": "45", "measuredH": "25", - "x": "47", - "y": "6", + "x": "49", + "y": "8", "properties": { "size": "17", - "text": "Unit Testing" + "text": "Redis" } }, { @@ -4392,8 +3524,8 @@ "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "200", - "y": "7", + "x": "130", + "y": "8", "properties": { "color": "16777215", "icon": { @@ -4408,8 +3540,8 @@ "zOrder": "3", "measuredW": "24", "measuredH": "24", - "x": "200", - "y": "7", + "x": "130", + "y": "8", "properties": { "color": "10027263", "icon": { @@ -4423,17 +3555,17 @@ } }, { - "ID": "1966", + "ID": "2468", "typeID": "__group__", - "zOrder": "208", - "measuredW": "225", - "measuredH": "37", - "w": "225", - "h": "37", - "x": "1276", - "y": "2175", + "zOrder": "88", + "measuredW": "155", + "measuredH": "40", + "w": "155", + "h": "40", + "x": "1502", + "y": "1445", "properties": { - "controlName": "102-testing:functional-testing" + "controlName": "101-caching:server-side:memcached" }, "children": { "controls": { @@ -4442,8 +3574,8 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "214", - "h": "37", + "w": "144", + "h": "40", "measuredW": "200", "measuredH": "140", "x": "0", @@ -4456,14 +3588,14 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "151", - "measuredW": "140", + "w": "96", + "measuredW": "96", "measuredH": "25", - "x": "29", - "y": "6", + "x": "28", + "y": "8", "properties": { "size": "17", - "text": "Functional Testing" + "text": "Memcached" } }, { @@ -4472,8 +3604,8 @@ "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "201", - "y": "7", + "x": "131", + "y": "9", "properties": { "color": "16777215", "icon": { @@ -4488,10 +3620,26 @@ "zOrder": "3", "measuredW": "24", "measuredH": "24", - "x": "201", - "y": "7", + "x": "131", + "y": "9", "properties": { - "color": "10027263", + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "4", + "typeID": "Icon", + "zOrder": "4", + "measuredW": "24", + "measuredH": "24", + "x": "131", + "y": "9", + "properties": { + "color": "3700253", "icon": { "ID": "check-circle", "size": "small" @@ -4503,203 +3651,47 @@ } }, { - "ID": "1969", - "typeID": "Label", - "zOrder": "119", - "measuredW": "128", + "ID": "2469", + "typeID": "__group__", + "zOrder": "89", + "measuredW": "129", "measuredH": "40", - "x": "1200", - "y": "789", - "properties": { - "size": "32", - "text": "Backend" - } - }, - { - "ID": "1970", - "typeID": "Arrow", - "zOrder": "120", - "w": "1", - "h": "75", - "measuredW": "150", - "measuredH": "100", - "x": "1251", - "y": "702", + "w": "129", + "h": "40", + "x": "1332", + "y": "1421", "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 0.43268541466795796, - "y": -0.4292144763719534 - }, - "p1": { - "x": 0.4673783006670677, - "y": -0.0036060514395746665 - }, - "p2": { - "x": 0.08850738176079176, - "y": 74.41806720423438 - } - } - }, - { - "ID": "1971", - "typeID": "__group__", - "zOrder": "121", - "measuredW": "350", - "measuredH": "141", - "w": "350", - "h": "141", - "x": "1477", - "y": "672", + "controlName": "101-caching:server-side" + }, "children": { "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "350", - "h": "141", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0" - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "314", - "measuredH": "25", - "x": "14", - "y": "17", - "properties": { - "size": "17", - "text": "Find the detailed version of this roadmap" - } - }, - { - "ID": "2", - "typeID": "Label", - "zOrder": "2", - "measuredW": "319", - "measuredH": "25", - "x": "14", - "y": "45", - "properties": { - "size": "17", - "text": "along with resources and other roadmaps" - } - }, - { - "ID": "3", - "typeID": "__group__", - "zOrder": "3", - "measuredW": "320", - "measuredH": "45", - "w": "320", - "h": "45", - "x": "15", - "y": "81", - "properties": { - "controlName": "ext_link:roadmap.sh" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "320", - "h": "45", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "borderColor": "4273622", - "color": "4273622" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "105", - "measuredH": "28", - "x": "141", - "y": "8", - "properties": { - "color": "16777215", - "size": "20", - "text": "roadmap.sh" - } - }, - { - "ID": "2", - "typeID": "Label", - "zOrder": "2", - "measuredW": "45", - "measuredH": "28", - "x": "66", - "y": "8", - "properties": { - "color": "16777215", - "size": "20", - "text": "https" - } - }, - { - "ID": "3", - "typeID": "Label", - "zOrder": "3", - "measuredW": "5", - "measuredH": "28", - "x": "113", - "y": "8", - "properties": { - "bold": "true", - "color": "16777215", - "size": "20", - "text": ":" - } - }, - { - "ID": "4", - "typeID": "Label", - "zOrder": "4", - "measuredW": "10", - "measuredH": "28", - "x": "120", - "y": "9", - "properties": { - "color": "16777215", - "size": "20", - "text": "/" - } - }, - { - "ID": "5", - "typeID": "Label", - "zOrder": "5", - "measuredW": "10", - "measuredH": "28", - "x": "128", - "y": "9", - "properties": { - "color": "16777215", - "size": "20", - "text": "/" - } - } - ] - } + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "129", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "95", + "measuredW": "90", + "measuredH": "25", + "x": "19", + "y": "8", + "properties": { + "size": "17", + "text": "Server Side" } } ] @@ -4707,37 +3699,57 @@ } }, { - "ID": "1972", + "ID": "2470", "typeID": "__group__", - "zOrder": "122", - "measuredW": "408", - "measuredH": "162", - "w": "408", - "h": "162", - "x": "665", - "y": "662", + "zOrder": "90", + "measuredW": "140", + "measuredH": "40", + "w": "140", + "h": "40", + "x": "1333", + "y": "1464", + "properties": { + "controlName": "102-caching:client-side" + }, "children": { "controls": { "control": [ { "ID": "0", - "typeID": "Canvas", + "typeID": "TextArea", "zOrder": "0", - "w": "408", - "h": "162", - "measuredW": "100", - "measuredH": "70", + "w": "130", + "h": "40", + "measuredW": "200", + "measuredH": "140", "x": "0", - "y": "0" + "y": "0", + "properties": { + "color": "16770457" + } }, { "ID": "1", - "typeID": "Icon", + "typeID": "Label", "zOrder": "1", + "w": "88", + "measuredW": "84", + "measuredH": "25", + "x": "21", + "y": "7", + "properties": { + "size": "17", + "text": "Client Side" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "23", - "y": "21", + "x": "116", + "y": "8", "properties": { "color": "16777215", "icon": { @@ -4747,13 +3759,13 @@ } }, { - "ID": "2", + "ID": "3", "typeID": "Icon", - "zOrder": "2", + "zOrder": "3", "measuredW": "24", "measuredH": "24", - "x": "23", - "y": "21", + "x": "116", + "y": "8", "properties": { "color": "10027263", "icon": { @@ -4761,43 +3773,192 @@ "size": "small" } } + } + ] + } + } + }, + { + "ID": "2471", + "typeID": "__group__", + "zOrder": "91", + "measuredW": "139", + "measuredH": "37", + "w": "139", + "h": "37", + "x": "1332", + "y": "1381", + "properties": { + "controlName": "100-caching:cdn" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "129", + "h": "37", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } }, { - "ID": "3", + "ID": "1", "typeID": "Label", + "zOrder": "1", + "w": "40", + "measuredW": "38", + "measuredH": "25", + "x": "45", + "y": "6", + "properties": { + "size": "17", + "text": "CDN" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "115", + "y": "5", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", "zOrder": "3", - "measuredW": "269", + "measuredW": "24", "measuredH": "24", - "x": "59", - "y": "21", + "x": "115", + "y": "5", "properties": { - "size": "16", - "text": "Personal Recommendation / Opinion" + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "2472", + "typeID": "__group__", + "zOrder": "92", + "measuredW": "229", + "measuredH": "50", + "w": "229", + "h": "50", + "x": "941", + "y": "1301", + "properties": { + "controlName": "106-relational-databases" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "229", + "h": "50", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" } }, { - "ID": "4", + "ID": "1", "typeID": "Label", - "zOrder": "4", - "measuredW": "159", - "measuredH": "24", - "x": "59", - "y": "118", + "zOrder": "1", + "measuredW": "165", + "measuredH": "25", + "x": "32", + "y": "13", + "properties": { + "size": "17", + "text": "Relational Databases" + } + } + ] + } + } + }, + { + "ID": "2473", + "typeID": "__group__", + "zOrder": "93", + "measuredW": "199", + "measuredH": "40", + "w": "199", + "h": "40", + "x": "668", + "y": "1305", + "properties": { + "controlName": "100-relational-databases:postgresql" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "191", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "8", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "96", + "measuredW": "93", + "measuredH": "25", + "x": "56", + "y": "7", "properties": { - "size": "16", - "text": "I wouldn't recommend" + "size": "17", + "text": "PostgreSQL" } }, { - "ID": "5", + "ID": "2", "typeID": "Icon", - "zOrder": "5", + "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "23", - "y": "118", + "x": "0", + "y": "7", "properties": { - "color": "10066329", + "color": "16777215", "icon": { "ID": "circle", "size": "small" @@ -4805,27 +3966,13 @@ } }, { - "ID": "6", - "typeID": "Label", - "zOrder": "6", - "w": "324", - "measuredW": "315", - "measuredH": "24", - "x": "60", - "y": "86", - "properties": { - "size": "16", - "text": "Order in roadmap not strict (Learn anytime)" - } - }, - { - "ID": "7", + "ID": "3", "typeID": "Icon", - "zOrder": "7", + "zOrder": "3", "measuredW": "24", "measuredH": "24", - "x": "23", - "y": "86", + "x": "0", + "y": "7", "properties": { "color": "16777215", "icon": { @@ -4835,42 +3982,77 @@ } }, { - "ID": "8", + "ID": "4", "typeID": "Icon", - "zOrder": "8", + "zOrder": "4", "measuredW": "24", "measuredH": "24", - "x": "23", - "y": "86", + "x": "0", + "y": "7", "properties": { - "color": "10066329", + "color": "10027263", "icon": { "ID": "check-circle", "size": "small" } } + } + ] + } + } + }, + { + "ID": "2474", + "typeID": "__group__", + "zOrder": "94", + "measuredW": "199", + "measuredH": "40", + "w": "199", + "h": "40", + "x": "668", + "y": "1350", + "properties": { + "controlName": "101-relational-databases:mysql" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "191", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "8", + "y": "0", + "properties": { + "color": "16770457" + } }, { - "ID": "9", + "ID": "1", "typeID": "Label", - "zOrder": "9", - "measuredW": "272", - "measuredH": "24", - "x": "59", - "y": "54", + "zOrder": "1", + "w": "60", + "measuredW": "56", + "measuredH": "25", + "x": "74", + "y": "7", "properties": { - "size": "16", - "text": "Alternative Option - Pick this or purple" + "size": "17", + "text": "MySQL" } }, { - "ID": "10", + "ID": "2", "typeID": "Icon", - "zOrder": "10", + "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "23", - "y": "53", + "x": "0", + "y": "7", "properties": { "color": "16777215", "icon": { @@ -4880,13 +4062,13 @@ } }, { - "ID": "11", + "ID": "3", "typeID": "Icon", - "zOrder": "11", + "zOrder": "3", "measuredW": "24", "measuredH": "24", - "x": "23", - "y": "53", + "x": "0", + "y": "7", "properties": { "color": "16777215", "icon": { @@ -4896,13 +4078,13 @@ } }, { - "ID": "12", + "ID": "4", "typeID": "Icon", - "zOrder": "12", + "zOrder": "4", "measuredW": "24", "measuredH": "24", - "x": "23", - "y": "53", + "x": "0", + "y": "7", "properties": { "color": "3700253", "icon": { @@ -4916,17 +4098,17 @@ } }, { - "ID": "1973", + "ID": "2475", "typeID": "__group__", - "zOrder": "123", - "measuredW": "144", + "zOrder": "95", + "measuredW": "199", "measuredH": "40", - "w": "144", + "w": "199", "h": "40", "x": "668", - "y": "950", + "y": "1395", "properties": { - "controlName": "100-learn-a-language:go" + "controlName": "102-relational-databases:mariadb" }, "children": { "controls": { @@ -4935,7 +4117,7 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "136", + "w": "191", "h": "40", "measuredW": "200", "measuredH": "140", @@ -4949,14 +4131,13 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "26", - "measuredW": "23", + "measuredW": "69", "measuredH": "25", - "x": "63", + "x": "69", "y": "7", "properties": { "size": "17", - "text": "Go" + "text": "MariaDB" } }, { @@ -4966,7 +4147,7 @@ "measuredW": "24", "measuredH": "24", "x": "0", - "y": "8", + "y": "7", "properties": { "color": "16777215", "icon": { @@ -4982,7 +4163,7 @@ "measuredW": "24", "measuredH": "24", "x": "0", - "y": "8", + "y": "7", "properties": { "color": "16777215", "icon": { @@ -4998,7 +4179,7 @@ "measuredW": "24", "measuredH": "24", "x": "0", - "y": "8", + "y": "7", "properties": { "color": "3700253", "icon": { @@ -5012,17 +4193,17 @@ } }, { - "ID": "1974", + "ID": "2476", "typeID": "__group__", - "zOrder": "124", - "measuredW": "144", + "zOrder": "96", + "measuredW": "199", "measuredH": "40", - "w": "144", + "w": "199", "h": "40", "x": "668", - "y": "1108", + "y": "1440", "properties": { - "controlName": "102-learn-a-language:java" + "controlName": "103-relational-databases:mssql" }, "children": { "controls": { @@ -5031,7 +4212,7 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "136", + "w": "191", "h": "40", "measuredW": "200", "measuredH": "140", @@ -5045,14 +4226,14 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "38", - "measuredW": "36", + "w": "67", + "measuredW": "63", "measuredH": "25", - "x": "57", - "y": "7", + "x": "70", + "y": "8", "properties": { "size": "17", - "text": "Java" + "text": "MS SQL" } }, { @@ -5062,7 +4243,7 @@ "measuredW": "24", "measuredH": "24", "x": "0", - "y": "8", + "y": "7", "properties": { "color": "16777215", "icon": { @@ -5078,7 +4259,7 @@ "measuredW": "24", "measuredH": "24", "x": "0", - "y": "8", + "y": "7", "properties": { "color": "16777215", "icon": { @@ -5094,7 +4275,7 @@ "measuredW": "24", "measuredH": "24", "x": "0", - "y": "8", + "y": "7", "properties": { "color": "3700253", "icon": { @@ -5108,17 +4289,17 @@ } }, { - "ID": "1975", + "ID": "2477", "typeID": "__group__", - "zOrder": "125", - "measuredW": "145", + "zOrder": "97", + "measuredW": "199", "measuredH": "40", - "w": "145", + "w": "199", "h": "40", "x": "668", - "y": "907", + "y": "1486", "properties": { - "controlName": "101-learn-a-language:rust" + "controlName": "104-relational-databases:oracle" }, "children": { "controls": { @@ -5127,11 +4308,11 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "136", + "w": "191", "h": "40", "measuredW": "200", "measuredH": "140", - "x": "9", + "x": "8", "y": "0", "properties": { "color": "16770457" @@ -5141,14 +4322,14 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "39", - "measuredW": "36", + "w": "54", + "measuredW": "52", "measuredH": "25", - "x": "57", - "y": "7", + "x": "77", + "y": "8", "properties": { "size": "17", - "text": "Rust" + "text": "Oracle" } }, { @@ -5204,17 +4385,64 @@ } }, { - "ID": "1976", + "ID": "2478", "typeID": "__group__", - "zOrder": "126", - "measuredW": "144", + "zOrder": "98", + "measuredW": "214", + "measuredH": "50", + "w": "214", + "h": "50", + "x": "1188", + "y": "2924", + "properties": { + "controlName": "107-nosql-databases" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "214", + "h": "50", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "143", + "measuredH": "25", + "x": "35", + "y": "12", + "properties": { + "text": "NoSQL Databases", + "size": "17" + } + } + ] + } + } + }, + { + "ID": "2479", + "typeID": "__group__", + "zOrder": "99", + "measuredW": "213", "measuredH": "40", - "w": "144", + "w": "213", "h": "40", - "x": "668", - "y": "1152", + "x": "674", + "y": "2262", "properties": { - "controlName": "103-learn-a-language:csharp" + "controlName": "101-more-about-databases:acid" }, "children": { "controls": { @@ -5223,11 +4451,11 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "136", + "w": "206", "h": "40", "measuredW": "200", "measuredH": "140", - "x": "8", + "x": "7", "y": "0", "properties": { "color": "16770457" @@ -5237,14 +4465,14 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "27", - "measuredW": "24", + "w": "43", + "measuredW": "40", "measuredH": "25", - "x": "62", + "x": "88", "y": "7", "properties": { "size": "17", - "text": "C#" + "text": "ACID" } }, { @@ -5272,23 +4500,7 @@ "x": "0", "y": "8", "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "4", - "typeID": "Icon", - "zOrder": "4", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "8", - "properties": { - "color": "3700253", + "color": "10027263", "icon": { "ID": "check-circle", "size": "small" @@ -5300,17 +4512,17 @@ } }, { - "ID": "1977", + "ID": "2480", "typeID": "__group__", - "zOrder": "127", - "measuredW": "302", + "zOrder": "100", + "measuredW": "211", "measuredH": "50", - "w": "302", + "w": "211", "h": "50", "x": "679", - "y": "1026", + "y": "2130", "properties": { - "controlName": "103-learn-a-language" + "controlName": "108-more-about-databases" }, "children": { "controls": { @@ -5319,7 +4531,7 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "302", + "w": "211", "h": "50", "measuredW": "200", "measuredH": "140", @@ -5333,12 +4545,12 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "141", + "measuredW": "176", "measuredH": "25", - "x": "80", + "x": "18", "y": "13", "properties": { - "text": "Learn a Language", + "text": "More about Databases", "size": "17" } } @@ -5347,17 +4559,17 @@ } }, { - "ID": "1978", + "ID": "2481", "typeID": "__group__", - "zOrder": "128", - "measuredW": "144", + "zOrder": "101", + "measuredW": "213", "measuredH": "40", - "w": "144", + "w": "213", "h": "40", - "x": "668", - "y": "1196", + "x": "674", + "y": "2306", "properties": { - "controlName": "103-learn-a-language:php" + "controlName": "102-more-about-databases:transactions" }, "children": { "controls": { @@ -5366,11 +4578,11 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "136", + "w": "206", "h": "40", "measuredW": "200", "measuredH": "140", - "x": "8", + "x": "7", "y": "0", "properties": { "color": "16770457" @@ -5380,14 +4592,14 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "34", - "measuredW": "34", + "w": "105", + "measuredW": "99", "measuredH": "25", - "x": "59", + "x": "57", "y": "7", "properties": { "size": "17", - "text": "PHP" + "text": "Transactions" } }, { @@ -5415,23 +4627,7 @@ "x": "0", "y": "8", "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "4", - "typeID": "Icon", - "zOrder": "4", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "8", - "properties": { - "color": "3700253", + "color": "10027263", "icon": { "ID": "check-circle", "size": "small" @@ -5443,17 +4639,17 @@ } }, { - "ID": "1979", + "ID": "2482", "typeID": "__group__", - "zOrder": "129", - "measuredW": "146", + "zOrder": "102", + "measuredW": "213", "measuredH": "40", - "w": "146", + "w": "213", "h": "40", - "x": "846", - "y": "1110", + "x": "674", + "y": "2350", "properties": { - "controlName": "105-learn-a-language:javascript" + "controlName": "103-more-about-databases:n-plus-one-problem" }, "children": { "controls": { @@ -5462,11 +4658,11 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "136", + "w": "206", "h": "40", "measuredW": "200", "measuredH": "140", - "x": "0", + "x": "7", "y": "0", "properties": { "color": "16770457" @@ -5476,14 +4672,13 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "85", - "measuredW": "81", + "measuredW": "99", "measuredH": "25", - "x": "27", - "y": "8", + "x": "60", + "y": "7", "properties": { - "size": "17", - "text": "JavaScript" + "text": "N+1 Problem", + "size": "17" } }, { @@ -5492,8 +4687,8 @@ "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "122", - "y": "7", + "x": "0", + "y": "8", "properties": { "color": "16777215", "icon": { @@ -5503,15 +4698,15 @@ } }, { - "ID": "4", + "ID": "3", "typeID": "Icon", "zOrder": "3", "measuredW": "24", "measuredH": "24", - "x": "122", - "y": "7", + "x": "0", + "y": "8", "properties": { - "color": "3700253", + "color": "10027263", "icon": { "ID": "check-circle", "size": "small" @@ -5523,17 +4718,17 @@ } }, { - "ID": "1980", + "ID": "2483", "typeID": "__group__", - "zOrder": "130", - "measuredW": "146", + "zOrder": "103", + "measuredW": "215", "measuredH": "40", - "w": "146", + "w": "215", "h": "40", - "x": "846", - "y": "1153", + "x": "672", + "y": "2394", "properties": { - "controlName": "106-learn-a-language:python" + "controlName": "104-more-about-databases:database-normalization" }, "children": { "controls": { @@ -5542,11 +4737,11 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "136", + "w": "206", "h": "40", "measuredW": "200", "measuredH": "140", - "x": "0", + "x": "9", "y": "0", "properties": { "color": "16770457" @@ -5556,14 +4751,13 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "56", - "measuredW": "53", + "measuredW": "107", "measuredH": "25", - "x": "40", - "y": "8", + "x": "58", + "y": "7", "properties": { "size": "17", - "text": "Python" + "text": "Normalization" } }, { @@ -5572,7 +4766,7 @@ "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "122", + "x": "0", "y": "8", "properties": { "color": "16777215", @@ -5588,26 +4782,10 @@ "zOrder": "3", "measuredW": "24", "measuredH": "24", - "x": "122", - "y": "8", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "4", - "typeID": "Icon", - "zOrder": "4", - "measuredW": "24", - "measuredH": "24", - "x": "122", + "x": "0", "y": "8", "properties": { - "color": "3700253", + "color": "10027263", "icon": { "ID": "check-circle", "size": "small" @@ -5619,17 +4797,17 @@ } }, { - "ID": "1981", + "ID": "2484", "typeID": "__group__", - "zOrder": "131", - "measuredW": "146", + "zOrder": "104", + "measuredW": "218", "measuredH": "40", - "w": "146", + "w": "218", "h": "40", - "x": "846", - "y": "1196", + "x": "670", + "y": "1810", "properties": { - "controlName": "107-learn-a-language:ruby" + "controlName": "100-scaling-databases:database-indexes" }, "children": { "controls": { @@ -5638,11 +4816,11 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "136", + "w": "208", "h": "40", "measuredW": "200", "measuredH": "140", - "x": "0", + "x": "10", "y": "0", "properties": { "color": "16770457" @@ -5652,14 +4830,13 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "42", - "measuredW": "39", + "measuredW": "140", "measuredH": "25", - "x": "47", - "y": "8", + "x": "44", + "y": "7", "properties": { "size": "17", - "text": "Ruby" + "text": "Database Indexes" } }, { @@ -5668,7 +4845,7 @@ "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "122", + "x": "0", "y": "8", "properties": { "color": "16777215", @@ -5684,26 +4861,10 @@ "zOrder": "3", "measuredW": "24", "measuredH": "24", - "x": "122", - "y": "8", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "4", - "typeID": "Icon", - "zOrder": "4", - "measuredW": "24", - "measuredH": "24", - "x": "122", + "x": "0", "y": "8", "properties": { - "color": "3700253", + "color": "10027263", "icon": { "ID": "check-circle", "size": "small" @@ -5715,47 +4876,17 @@ } }, { - "ID": "1983", - "typeID": "Arrow", - "zOrder": "132", - "w": "175", - "h": "48", - "measuredW": "150", - "measuredH": "100", - "x": "1342", - "y": "960", - "properties": { - "color": "2848996", - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 175.29875220380154, - "y": 48.53446090344232 - }, - "p1": { - "x": 0.5008052694036629, - "y": -0.08367970543914485 - }, - "p2": { - "x": 0.1930231075264146, - "y": 0.6021142674793509 - } - } - }, - { - "ID": "1984", + "ID": "2485", "typeID": "__group__", - "zOrder": "133", - "measuredW": "227", + "zOrder": "105", + "measuredW": "212", "measuredH": "50", - "w": "227", + "w": "212", "h": "50", - "x": "1140", - "y": "927", + "x": "945", + "y": "1554", "properties": { - "controlName": "100-internet" + "controlName": "109-apis" }, "children": { "controls": { @@ -5764,7 +4895,7 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "227", + "w": "212", "h": "50", "measuredW": "200", "measuredH": "140", @@ -5778,12 +4909,12 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "62", + "measuredW": "133", "measuredH": "25", - "x": "83", + "x": "39", "y": "13", "properties": { - "text": "Internet", + "text": "Learn about APIs", "size": "17" } } @@ -5792,17 +4923,17 @@ } }, { - "ID": "1985", + "ID": "2486", "typeID": "__group__", - "zOrder": "134", - "measuredW": "310", - "measuredH": "44", - "w": "310", - "h": "44", - "x": "1510", - "y": "855", + "zOrder": "106", + "measuredW": "157", + "measuredH": "40", + "w": "157", + "h": "40", + "x": "668", + "y": "1562", "properties": { - "controlName": "100-internet:how-does-the-internet-work" + "controlName": "100-apis:rest" }, "children": { "controls": { @@ -5811,11 +4942,11 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "299", - "h": "44", + "w": "146", + "h": "40", "measuredW": "200", "measuredH": "140", - "x": "0", + "x": "11", "y": "0", "properties": { "color": "16770457" @@ -5825,24 +4956,24 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "223", - "measuredW": "219", + "w": "49", + "measuredW": "44", "measuredH": "25", - "x": "38", - "y": "9", + "x": "59", + "y": "7", "properties": { "size": "17", - "text": "How does the internet work?" + "text": "REST" } }, { - "ID": "2", + "ID": "3", "typeID": "Icon", "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "286", - "y": "9", + "x": "0", + "y": "8", "properties": { "color": "16777215", "icon": { @@ -5852,13 +4983,13 @@ } }, { - "ID": "3", + "ID": "4", "typeID": "Icon", "zOrder": "3", "measuredW": "24", "measuredH": "24", - "x": "286", - "y": "9", + "x": "0", + "y": "8", "properties": { "color": "10027263", "icon": { @@ -5872,17 +5003,17 @@ } }, { - "ID": "1986", + "ID": "2487", "typeID": "__group__", - "zOrder": "135", - "measuredW": "310", + "zOrder": "107", + "measuredW": "157", "measuredH": "40", - "w": "310", + "w": "157", "h": "40", - "x": "1510", - "y": "902", + "x": "668", + "y": "1607", "properties": { - "controlName": "101-internet:what-is-http" + "controlName": "101-apis:json-apis" }, "children": { "controls": { @@ -5891,11 +5022,11 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "299", + "w": "146", "h": "40", "measuredW": "200", "measuredH": "140", - "x": "0", + "x": "11", "y": "0", "properties": { "color": "16770457" @@ -5905,14 +5036,14 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "119", - "measuredW": "113", + "w": "90", + "measuredW": "85", "measuredH": "25", - "x": "90", - "y": "8", + "x": "39", + "y": "7", "properties": { "size": "17", - "text": "What is HTTP?" + "text": "JSON APIs" } }, { @@ -5921,7 +5052,7 @@ "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "286", + "x": "0", "y": "8", "properties": { "color": "16777215", @@ -5937,7 +5068,7 @@ "zOrder": "3", "measuredW": "24", "measuredH": "24", - "x": "286", + "x": "0", "y": "8", "properties": { "color": "10027263", @@ -5952,17 +5083,17 @@ } }, { - "ID": "1987", + "ID": "2488", "typeID": "__group__", - "zOrder": "136", - "measuredW": "310", + "zOrder": "108", + "measuredW": "155", "measuredH": "40", - "w": "310", + "w": "155", "h": "40", - "x": "1510", - "y": "946", + "x": "670", + "y": "1652", "properties": { - "controlName": "102-internet:browsers-and-how-they-work" + "controlName": "102-apis:soap" }, "children": { "controls": { @@ -5971,11 +5102,11 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "299", + "w": "145", "h": "40", "measuredW": "200", "measuredH": "140", - "x": "0", + "x": "10", "y": "0", "properties": { "color": "16770457" @@ -5985,14 +5116,14 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "230", - "measuredW": "225", + "w": "49", + "measuredW": "44", "measuredH": "25", - "x": "34", - "y": "8", + "x": "58", + "y": "7", "properties": { "size": "17", - "text": "Browsers and how they work?" + "text": "SOAP" } }, { @@ -6001,7 +5132,7 @@ "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "286", + "x": "0", "y": "8", "properties": { "color": "16777215", @@ -6017,10 +5148,10 @@ "zOrder": "3", "measuredW": "24", "measuredH": "24", - "x": "286", + "x": "0", "y": "8", "properties": { - "color": "10027263", + "color": "10066329", "icon": { "ID": "check-circle", "size": "small" @@ -6032,17 +5163,17 @@ } }, { - "ID": "1988", + "ID": "2489", "typeID": "__group__", - "zOrder": "137", - "measuredW": "311", + "zOrder": "109", + "measuredW": "201", "measuredH": "40", - "w": "311", + "w": "201", "h": "40", - "x": "1511", - "y": "990", + "x": "1082", + "y": "1412", "properties": { - "controlName": "103-internet:dns-and-how-it-works" + "controlName": "104-apis:hateoas" }, "children": { "controls": { @@ -6051,7 +5182,7 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "300", + "w": "190", "h": "40", "measuredW": "200", "measuredH": "140", @@ -6065,14 +5196,14 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "179", - "measuredW": "175", + "w": "78", + "measuredW": "76", "measuredH": "25", - "x": "60", - "y": "8", + "x": "56", + "y": "7", "properties": { "size": "17", - "text": "DNS and how it works?" + "text": "HATEOAS" } }, { @@ -6081,7 +5212,7 @@ "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "287", + "x": "177", "y": "8", "properties": { "color": "16777215", @@ -6097,10 +5228,10 @@ "zOrder": "3", "measuredW": "24", "measuredH": "24", - "x": "287", + "x": "177", "y": "8", "properties": { - "color": "10027263", + "color": "10066329", "icon": { "ID": "check-circle", "size": "small" @@ -6112,17 +5243,17 @@ } }, { - "ID": "1989", + "ID": "2490", "typeID": "__group__", - "zOrder": "138", - "measuredW": "312", + "zOrder": "110", + "measuredW": "201", "measuredH": "40", - "w": "312", + "w": "201", "h": "40", - "x": "1510", - "y": "1034", + "x": "1082", + "y": "1448", "properties": { - "controlName": "104-internet:what-is-domain-name" + "controlName": "105-apis:open-api-spec" }, "children": { "controls": { @@ -6131,7 +5262,7 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "302", + "w": "190", "h": "40", "measuredW": "200", "measuredH": "140", @@ -6145,14 +5276,13 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "179", - "measuredW": "180", + "measuredW": "126", "measuredH": "25", - "x": "61", - "y": "8", + "x": "32", + "y": "7", "properties": { "size": "17", - "text": "What is Domain Name?" + "text": "Open API Specs" } }, { @@ -6161,7 +5291,7 @@ "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "288", + "x": "177", "y": "8", "properties": { "color": "16777215", @@ -6177,10 +5307,10 @@ "zOrder": "3", "measuredW": "24", "measuredH": "24", - "x": "288", + "x": "177", "y": "8", "properties": { - "color": "10027263", + "color": "10066329", "icon": { "ID": "check-circle", "size": "small" @@ -6192,17 +5322,17 @@ } }, { - "ID": "1990", + "ID": "2491", "typeID": "__group__", - "zOrder": "139", - "measuredW": "313", - "measuredH": "40", - "w": "313", - "h": "40", - "x": "1511", - "y": "1078", + "zOrder": "111", + "measuredW": "170", + "measuredH": "50", + "w": "170", + "h": "50", + "x": "985", + "y": "1645", "properties": { - "controlName": "105-internet:what-is-hosting" + "controlName": "106-apis:authentication" }, "children": { "controls": { @@ -6211,60 +5341,72 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "304", - "h": "40", + "w": "170", + "h": "50", "measuredW": "200", "measuredH": "140", "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } + "y": "0" }, { "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "133", - "measuredW": "126", + "w": "111", + "measuredW": "111", "measuredH": "25", - "x": "85", - "y": "8", + "x": "29", + "y": "12", "properties": { "size": "17", - "text": "What is hosting?" + "text": "Authentication" } - }, + } + ] + } + } + }, + { + "ID": "2492", + "typeID": "__group__", + "zOrder": "112", + "measuredW": "240", + "measuredH": "54", + "w": "240", + "h": "54", + "x": "1581", + "y": "1762", + "properties": { + "controlName": "111-web-security-knowledge" + }, + "children": { + "controls": { + "control": [ { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "289", - "y": "8", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "240", + "h": "54", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" } }, { - "ID": "3", - "typeID": "Icon", - "zOrder": "3", - "measuredW": "24", - "measuredH": "24", - "x": "289", - "y": "8", + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "189", + "measuredH": "25", + "x": "25", + "y": "15", "properties": { - "color": "10027263", - "icon": { - "ID": "check-circle", - "size": "small" - } + "size": "17", + "text": "Web Security Knowledge" } } ] @@ -6272,17 +5414,28 @@ } }, { - "ID": "2001", + "ID": "2493", + "typeID": "TextArea", + "zOrder": "113", + "w": "270", + "h": "192", + "measuredW": "200", + "measuredH": "140", + "x": "1552", + "y": "1526" + }, + { + "ID": "2494", "typeID": "__group__", - "zOrder": "140", - "measuredW": "82", - "measuredH": "50", - "w": "82", - "h": "50", - "x": "1293", - "y": "1102", + "zOrder": "114", + "measuredW": "239", + "measuredH": "40", + "w": "239", + "h": "40", + "x": "1567", + "y": "1541", "properties": { - "controlName": "100-version-control-systems:git" + "controlName": "100-web-security-knowledge:md5" }, "children": { "controls": { @@ -6291,8 +5444,8 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "71", - "h": "50", + "w": "239", + "h": "40", "measuredW": "200", "measuredH": "140", "x": "0", @@ -6305,45 +5458,14 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "22", + "w": "203", + "measuredW": "197", "measuredH": "25", - "x": "25", - "y": "12", + "x": "20", + "y": "8", "properties": { "size": "17", - "text": "Git" - } - }, - { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "58", - "y": "13", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "3", - "typeID": "Icon", - "zOrder": "3", - "measuredW": "24", - "measuredH": "24", - "x": "58", - "y": "13", - "properties": { - "color": "10027263", - "icon": { - "ID": "check-circle", - "size": "small" - } + "text": "MD5 and why not to use it" } } ] @@ -6351,17 +5473,17 @@ } }, { - "ID": "2002", + "ID": "2495", "typeID": "__group__", - "zOrder": "141", - "measuredW": "138", - "measuredH": "49", - "w": "138", - "h": "49", - "x": "1684", - "y": "1184", + "zOrder": "115", + "measuredW": "237", + "measuredH": "40", + "w": "237", + "h": "40", + "x": "1568", + "y": "1586", "properties": { - "controlName": "100-repo-hosting-services:github" + "controlName": "101-web-security-knowledge:sha-family" }, "children": { "controls": { @@ -6370,8 +5492,8 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "131", - "h": "49", + "w": "237", + "h": "40", "measuredW": "200", "measuredH": "140", "x": "0", @@ -6384,45 +5506,14 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "54", + "w": "93", + "measuredW": "87", "measuredH": "25", - "x": "39", - "y": "12", - "properties": { - "text": "GitHub", - "size": "17" - } - }, - { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "114", - "y": "13", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "3", - "typeID": "Icon", - "zOrder": "3", - "measuredW": "24", - "measuredH": "24", - "x": "114", - "y": "13", + "x": "72", + "y": "7", "properties": { - "color": "10027263", - "icon": { - "ID": "check-circle", - "size": "small" - } + "size": "17", + "text": "SHA Family" } } ] @@ -6430,17 +5521,17 @@ } }, { - "ID": "2003", + "ID": "2496", "typeID": "__group__", - "zOrder": "142", - "measuredW": "227", - "measuredH": "50", - "w": "227", - "h": "50", - "x": "1333", - "y": "1292", + "zOrder": "116", + "measuredW": "119", + "measuredH": "40", + "w": "119", + "h": "40", + "x": "1569", + "y": "1632", "properties": { - "controlName": "105-repo-hosting-services" + "controlName": "104-web-security-knowledge:scrypt" }, "children": { "controls": { @@ -6449,27 +5540,28 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "227", - "h": "50", + "w": "119", + "h": "40", "measuredW": "200", "measuredH": "140", "x": "0", "y": "0", "properties": { - "color": "16776960" + "color": "16770457" } }, { "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "172", + "w": "62", + "measuredW": "47", "measuredH": "25", - "x": "28", - "y": "12", + "x": "38", + "y": "7", "properties": { - "text": "Repo hosting services", - "size": "17" + "size": "17", + "text": "scrypt" } } ] @@ -6477,17 +5569,17 @@ } }, { - "ID": "2004", + "ID": "2497", "typeID": "__group__", - "zOrder": "143", - "measuredW": "226", - "measuredH": "50", - "w": "226", - "h": "50", - "x": "1139", - "y": "1023", + "zOrder": "117", + "measuredW": "111", + "measuredH": "40", + "w": "111", + "h": "40", + "x": "1695", + "y": "1632", "properties": { - "controlName": "104-version-control-systems" + "controlName": "102-web-security-knowledge:bcrypt" }, "children": { "controls": { @@ -6496,27 +5588,28 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "226", - "h": "50", + "w": "111", + "h": "40", "measuredW": "200", "measuredH": "140", "x": "0", "y": "0", "properties": { - "color": "16776960" + "color": "16770457" } }, { "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "186", + "w": "53", + "measuredW": "48", "measuredH": "25", - "x": "20", - "y": "12", + "x": "35", + "y": "7", "properties": { - "text": "Version Control Systems", - "size": "17" + "size": "17", + "text": "bcrypt" } } ] @@ -6524,94 +5617,216 @@ } }, { - "ID": "2005", + "ID": "2498", + "typeID": "Label", + "zOrder": "118", + "w": "155", + "measuredW": "149", + "measuredH": "25", + "x": "1609", + "y": "1680", + "properties": { + "size": "17", + "text": "Hashing Algorithms" + } + }, + { + "ID": "2499", + "typeID": "Label", + "zOrder": "119", + "measuredW": "128", + "measuredH": "40", + "x": "1200", + "y": "789", + "properties": { + "size": "32", + "text": "Backend" + } + }, + { + "ID": "2500", + "typeID": "Arrow", + "zOrder": "120", + "w": "1", + "h": "75", + "measuredW": "150", + "measuredH": "100", + "x": "1251", + "y": "702", + "properties": { + "color": "2848996", + "curvature": "-1", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 0.43268541466795796, + "y": -0.4292144763719534 + }, + "p1": { + "x": 0.4673783006670677, + "y": -0.0036060514395746665 + }, + "p2": { + "x": 0.08850738176079176, + "y": 74.41806720423438 + } + } + }, + { + "ID": "2501", "typeID": "__group__", - "zOrder": "144", - "measuredW": "140", - "measuredH": "49", - "w": "140", - "h": "49", - "x": "1684", - "y": "1291", - "properties": { - "controlName": "102-repo-hosting-services:bitbucket" - }, + "zOrder": "121", + "measuredW": "350", + "measuredH": "141", + "w": "350", + "h": "141", + "x": "1477", + "y": "672", "children": { "controls": { "control": [ { "ID": "0", - "typeID": "TextArea", + "typeID": "Canvas", "zOrder": "0", - "w": "131", - "h": "49", - "measuredW": "200", - "measuredH": "140", + "w": "350", + "h": "141", + "measuredW": "100", + "measuredH": "70", "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } + "y": "0" }, { "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "73", + "measuredW": "314", "measuredH": "25", - "x": "29", - "y": "12", + "x": "14", + "y": "17", "properties": { - "color": "3355443", - "text": "Bitbucket", - "size": "17" + "size": "17", + "text": "Find the detailed version of this roadmap" } }, { - "ID": "3", - "typeID": "Icon", + "ID": "2", + "typeID": "Label", "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "116", - "y": "13", + "measuredW": "319", + "measuredH": "25", + "x": "14", + "y": "45", "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } + "size": "17", + "text": "along with resources and other roadmaps" } }, { - "ID": "4", - "typeID": "Icon", + "ID": "3", + "typeID": "__group__", "zOrder": "3", - "measuredW": "24", - "measuredH": "24", - "x": "116", - "y": "13", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "5", - "typeID": "Icon", - "zOrder": "4", - "measuredW": "24", - "measuredH": "24", - "x": "116", - "y": "13", + "measuredW": "320", + "measuredH": "45", + "w": "320", + "h": "45", + "x": "15", + "y": "81", "properties": { - "color": "3700253", - "icon": { - "ID": "check-circle", - "size": "small" + "controlName": "ext_link:roadmap.sh" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "320", + "h": "45", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "borderColor": "4273622", + "color": "4273622" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "105", + "measuredH": "28", + "x": "141", + "y": "8", + "properties": { + "color": "16777215", + "size": "20", + "text": "roadmap.sh" + } + }, + { + "ID": "2", + "typeID": "Label", + "zOrder": "2", + "measuredW": "45", + "measuredH": "28", + "x": "66", + "y": "8", + "properties": { + "color": "16777215", + "size": "20", + "text": "https" + } + }, + { + "ID": "3", + "typeID": "Label", + "zOrder": "3", + "measuredW": "5", + "measuredH": "28", + "x": "113", + "y": "8", + "properties": { + "bold": "true", + "color": "16777215", + "size": "20", + "text": ":" + } + }, + { + "ID": "4", + "typeID": "Label", + "zOrder": "4", + "measuredW": "10", + "measuredH": "28", + "x": "120", + "y": "9", + "properties": { + "color": "16777215", + "size": "20", + "text": "/" + } + }, + { + "ID": "5", + "typeID": "Label", + "zOrder": "5", + "measuredW": "10", + "measuredH": "28", + "x": "128", + "y": "9", + "properties": { + "color": "16777215", + "size": "20", + "text": "/" + } + } + ] } } } @@ -6620,58 +5835,37 @@ } }, { - "ID": "2006", + "ID": "2502", "typeID": "__group__", - "zOrder": "145", - "measuredW": "140", - "measuredH": "49", - "w": "140", - "h": "49", - "x": "1684", - "y": "1237", - "properties": { - "controlName": "101-repo-hosting-services:gitlab" - }, + "zOrder": "122", + "measuredW": "408", + "measuredH": "162", + "w": "408", + "h": "162", + "x": "665", + "y": "662", "children": { "controls": { "control": [ { "ID": "0", - "typeID": "TextArea", + "typeID": "Canvas", "zOrder": "0", - "w": "131", - "h": "49", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "52", - "measuredW": "51", - "measuredH": "25", - "x": "40", - "y": "12", - "properties": { - "color": "3355443", - "size": "17", - "text": "GitLab" - } + "w": "408", + "h": "162", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0" }, { - "ID": "3", + "ID": "1", "typeID": "Icon", - "zOrder": "2", + "zOrder": "1", "measuredW": "24", "measuredH": "24", - "x": "116", - "y": "13", + "x": "23", + "y": "21", "properties": { "color": "16777215", "icon": { @@ -6681,93 +5875,85 @@ } }, { - "ID": "4", + "ID": "2", "typeID": "Icon", - "zOrder": "3", + "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "116", - "y": "13", + "x": "23", + "y": "21", "properties": { - "color": "16777215", + "color": "10027263", "icon": { - "ID": "circle", + "ID": "check-circle", "size": "small" } } }, + { + "ID": "3", + "typeID": "Label", + "zOrder": "3", + "measuredW": "269", + "measuredH": "24", + "x": "59", + "y": "21", + "properties": { + "size": "16", + "text": "Personal Recommendation / Opinion" + } + }, + { + "ID": "4", + "typeID": "Label", + "zOrder": "4", + "measuredW": "159", + "measuredH": "24", + "x": "59", + "y": "118", + "properties": { + "size": "16", + "text": "I wouldn't recommend" + } + }, { "ID": "5", "typeID": "Icon", - "zOrder": "4", + "zOrder": "5", "measuredW": "24", "measuredH": "24", - "x": "116", - "y": "13", + "x": "23", + "y": "118", "properties": { - "color": "3700253", + "color": "10066329", "icon": { - "ID": "check-circle", + "ID": "circle", "size": "small" } } - } - ] - } - } - }, - { - "ID": "2007", - "typeID": "__group__", - "zOrder": "146", - "measuredW": "212", - "measuredH": "40", - "w": "212", - "h": "40", - "x": "674", - "y": "2218", - "properties": { - "controlName": "100-more-about-databases:orms" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "205", - "h": "40", - "measuredW": "200", - "measuredH": "140", - "x": "7", - "y": "0", - "properties": { - "color": "16770457" - } }, { - "ID": "1", + "ID": "6", "typeID": "Label", - "zOrder": "1", - "w": "49", - "measuredW": "49", - "measuredH": "25", - "x": "85", - "y": "7", + "zOrder": "6", + "w": "324", + "measuredW": "315", + "measuredH": "24", + "x": "60", + "y": "86", "properties": { - "size": "17", - "text": "ORMs" + "size": "16", + "text": "Order in roadmap not strict (Learn anytime)" } }, { - "ID": "2", + "ID": "7", "typeID": "Icon", - "zOrder": "2", + "zOrder": "7", "measuredW": "24", "measuredH": "24", - "x": "0", - "y": "8", + "x": "23", + "y": "86", "properties": { "color": "16777215", "icon": { @@ -6777,172 +5963,58 @@ } }, { - "ID": "3", + "ID": "8", "typeID": "Icon", - "zOrder": "3", + "zOrder": "8", "measuredW": "24", "measuredH": "24", - "x": "0", - "y": "8", + "x": "23", + "y": "86", "properties": { - "color": "10027263", + "color": "10066329", "icon": { "ID": "check-circle", "size": "small" } } - } - ] - } - } - }, - { - "ID": "2008", - "typeID": "__group__", - "zOrder": "147", - "measuredW": "169", - "measuredH": "50", - "w": "169", - "h": "50", - "x": "984", - "y": "2008", - "properties": { - "controlName": "113-ci-cd" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "169", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "62", - "measuredW": "59", - "measuredH": "25", - "x": "54", - "y": "12", - "properties": { - "size": "17", - "text": "CI / CD" - } - } - ] - } - } - }, - { - "ID": "2009", - "typeID": "__group__", - "zOrder": "23", - "measuredW": "324", - "measuredH": "50", - "w": "324", - "h": "50", - "x": "1005", - "y": "2312", - "properties": { - "controlName": "114-design-and-development-principles" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "324", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } }, { - "ID": "1", + "ID": "9", "typeID": "Label", - "zOrder": "1", - "measuredW": "275", - "measuredH": "25", - "x": "24", - "y": "13", - "properties": { - "size": "17", - "text": "Design and Development Principles" - } - } - ] - } - } - }, - { - "ID": "2010", - "typeID": "__group__", - "zOrder": "148", - "measuredW": "271", - "measuredH": "40", - "w": "271", - "h": "40", - "x": "1561", - "y": "2208", - "properties": { - "controlName": "100-design-and-development-principles:gof-design-patterns" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "260", - "h": "40", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", + "zOrder": "9", + "measuredW": "272", + "measuredH": "24", + "x": "59", + "y": "54", "properties": { - "color": "16770457" + "size": "16", + "text": "Alternative Option - Pick this or purple" } }, { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "168", - "measuredW": "164", - "measuredH": "25", - "x": "46", - "y": "7", + "ID": "10", + "typeID": "Icon", + "zOrder": "10", + "measuredW": "24", + "measuredH": "24", + "x": "23", + "y": "53", "properties": { - "size": "17", - "text": "GOF Design Patterns" + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } } }, { - "ID": "2", + "ID": "11", "typeID": "Icon", - "zOrder": "2", + "zOrder": "11", "measuredW": "24", "measuredH": "24", - "x": "247", - "y": "8", + "x": "23", + "y": "53", "properties": { "color": "16777215", "icon": { @@ -6952,19 +6024,19 @@ } }, { - "ID": "3", + "ID": "12", "typeID": "Icon", - "zOrder": "3", + "zOrder": "12", "measuredW": "24", "measuredH": "24", - "x": "247", - "y": "8", + "x": "23", + "y": "53", "properties": { + "color": "3700253", "icon": { "ID": "check-circle", "size": "small" - }, - "color": "10027263" + } } } ] @@ -6972,17 +6044,17 @@ } }, { - "ID": "2011", + "ID": "2503", "typeID": "__group__", - "zOrder": "149", - "measuredW": "271", + "zOrder": "123", + "measuredW": "144", "measuredH": "40", - "w": "271", + "w": "144", "h": "40", - "x": "1561", - "y": "2252", + "x": "668", + "y": "950", "properties": { - "controlName": "101-design-and-development-principles:domain-driven-design" + "controlName": "100-learn-a-language:go" }, "children": { "controls": { @@ -6991,11 +6063,11 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "260", + "w": "136", "h": "40", "measuredW": "200", "measuredH": "140", - "x": "0", + "x": "8", "y": "0", "properties": { "color": "16770457" @@ -7005,14 +6077,14 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "175", - "measuredW": "172", + "w": "26", + "measuredW": "23", "measuredH": "25", - "x": "42", + "x": "63", "y": "7", "properties": { "size": "17", - "text": "Domain Driven Design" + "text": "Go" } }, { @@ -7021,7 +6093,7 @@ "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "247", + "x": "0", "y": "8", "properties": { "color": "16777215", @@ -7037,14 +6109,30 @@ "zOrder": "3", "measuredW": "24", "measuredH": "24", - "x": "247", + "x": "0", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "4", + "typeID": "Icon", + "zOrder": "4", + "measuredW": "24", + "measuredH": "24", + "x": "0", "y": "8", "properties": { + "color": "3700253", "icon": { "ID": "check-circle", "size": "small" - }, - "color": "10027263" + } } } ] @@ -7052,17 +6140,17 @@ } }, { - "ID": "2012", + "ID": "2504", "typeID": "__group__", - "zOrder": "150", - "measuredW": "271", + "zOrder": "124", + "measuredW": "144", "measuredH": "40", - "w": "271", + "w": "144", "h": "40", - "x": "1561", - "y": "2296", + "x": "668", + "y": "1108", "properties": { - "controlName": "102-design-and-development-principles:test-driven-development" + "controlName": "102-learn-a-language:java" }, "children": { "controls": { @@ -7071,11 +6159,11 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "260", + "w": "136", "h": "40", "measuredW": "200", "measuredH": "140", - "x": "0", + "x": "8", "y": "0", "properties": { "color": "16770457" @@ -7085,14 +6173,14 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "196", - "measuredW": "194", + "w": "38", + "measuredW": "36", "measuredH": "25", - "x": "32", + "x": "57", "y": "7", "properties": { "size": "17", - "text": "Test Driven Development" + "text": "Java" } }, { @@ -7101,7 +6189,7 @@ "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "247", + "x": "0", "y": "8", "properties": { "color": "16777215", @@ -7117,72 +6205,8 @@ "zOrder": "3", "measuredW": "24", "measuredH": "24", - "x": "247", - "y": "8", - "properties": { - "icon": { - "ID": "check-circle", - "size": "small" - }, - "color": "10027263" - } - } - ] - } - } - }, - { - "ID": "2013", - "typeID": "__group__", - "zOrder": "151", - "measuredW": "210", - "measuredH": "37", - "w": "210", - "h": "37", - "x": "1005", - "y": "2668", - "properties": { - "controlName": "104-architectural-patterns:serverless" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "202", - "h": "37", - "measuredW": "200", - "measuredH": "140", "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "87", - "measuredW": "82", - "measuredH": "25", - "x": "57", - "y": "6", - "properties": { - "size": "17", - "text": "Serverless" - } - }, - { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "186", - "y": "7", + "y": "8", "properties": { "color": "16777215", "icon": { @@ -7192,15 +6216,15 @@ } }, { - "ID": "3", + "ID": "4", "typeID": "Icon", - "zOrder": "3", + "zOrder": "4", "measuredW": "24", "measuredH": "24", - "x": "186", - "y": "7", + "x": "0", + "y": "8", "properties": { - "color": "10027263", + "color": "3700253", "icon": { "ID": "check-circle", "size": "small" @@ -7212,17 +6236,17 @@ } }, { - "ID": "2014", + "ID": "2505", "typeID": "__group__", - "zOrder": "2", - "measuredW": "214", - "measuredH": "46", - "w": "214", - "h": "46", - "x": "671", - "y": "3258", + "zOrder": "125", + "measuredW": "145", + "measuredH": "40", + "w": "145", + "h": "40", + "x": "668", + "y": "907", "properties": { - "controlName": "102-scalability:migration-strategies" + "controlName": "101-learn-a-language:rust" }, "children": { "controls": { @@ -7231,11 +6255,11 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "214", - "h": "46", + "w": "136", + "h": "40", "measuredW": "200", "measuredH": "140", - "x": "0", + "x": "9", "y": "0", "properties": { "color": "16770457" @@ -7245,60 +6269,62 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "155", + "w": "39", + "measuredW": "36", "measuredH": "25", - "x": "29", - "y": "9", + "x": "57", + "y": "7", "properties": { - "text": "Migration Strategies", - "size": "17" + "size": "17", + "text": "Rust" } - } - ] - } - } - }, - { - "ID": "2015", - "typeID": "__group__", - "zOrder": "215", - "measuredW": "212", - "measuredH": "41", - "w": "212", - "h": "41", - "x": "671", - "y": "3220", - "properties": { - "controlName": "103-scalability:horizontal-vertical-scaling" - }, - "children": { - "controls": { - "control": [ + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "212", - "h": "41", - "measuredW": "200", - "measuredH": "140", + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", "x": "0", - "y": "0", + "y": "8", "properties": { - "color": "16770457" + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } } }, { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "125", - "measuredH": "25", - "x": "43", + "ID": "4", + "typeID": "Icon", + "zOrder": "4", + "measuredW": "24", + "measuredH": "24", + "x": "0", "y": "8", "properties": { - "size": "17", - "text": "Types of Scaling" + "color": "3700253", + "icon": { + "ID": "check-circle", + "size": "small" + } } } ] @@ -7306,17 +6332,17 @@ } }, { - "ID": "2018", + "ID": "2506", "typeID": "__group__", - "zOrder": "152", - "measuredW": "155", + "zOrder": "126", + "measuredW": "144", "measuredH": "40", - "w": "155", + "w": "144", "h": "40", - "x": "670", - "y": "1697", + "x": "668", + "y": "1152", "properties": { - "controlName": "103-apis:grpc" + "controlName": "103-learn-a-language:csharp" }, "children": { "controls": { @@ -7325,11 +6351,11 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "145", + "w": "136", "h": "40", "measuredW": "200", "measuredH": "140", - "x": "10", + "x": "8", "y": "0", "properties": { "color": "16770457" @@ -7339,19 +6365,18 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "90", - "measuredW": "45", + "w": "27", + "measuredW": "24", "measuredH": "25", - "x": "38", + "x": "62", "y": "7", "properties": { - "align": "center", "size": "17", - "text": "gRPC" + "text": "C#" } }, { - "ID": "4", + "ID": "2", "typeID": "Icon", "zOrder": "2", "measuredW": "24", @@ -7367,7 +6392,7 @@ } }, { - "ID": "5", + "ID": "3", "typeID": "Icon", "zOrder": "3", "measuredW": "24", @@ -7375,7 +6400,23 @@ "x": "0", "y": "8", "properties": { - "color": "10066329", + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "4", + "typeID": "Icon", + "zOrder": "4", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "3700253", "icon": { "ID": "check-circle", "size": "small" @@ -7387,17 +6428,17 @@ } }, { - "ID": "2019", + "ID": "2507", "typeID": "__group__", - "zOrder": "153", - "measuredW": "323", + "zOrder": "127", + "measuredW": "302", "measuredH": "50", - "w": "323", + "w": "302", "h": "50", - "x": "1005", - "y": "2264", + "x": "679", + "y": "1026", "properties": { - "controlName": "ext_link:roadmap.sh/software-design-architecture" + "controlName": "103-learn-a-language" }, "children": { "controls": { @@ -7406,30 +6447,27 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "323", + "w": "302", "h": "50", "measuredW": "200", "measuredH": "140", "x": "0", "y": "0", "properties": { - "color": "4273622", - "borderColor": "4273622", - "textColor": "16777215" + "color": "16776960" } }, { "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "240", + "measuredW": "141", "measuredH": "25", - "x": "42", - "y": "12", + "x": "80", + "y": "13", "properties": { - "text": "Software Design & Architecture", - "size": "17", - "color": "16777215" + "text": "Learn a Language", + "size": "17" } } ] @@ -7437,17 +6475,17 @@ } }, { - "ID": "2024", + "ID": "2508", "typeID": "__group__", - "zOrder": "154", - "measuredW": "174", - "measuredH": "154", - "w": "174", - "h": "154", - "x": "1475", - "y": "2923", + "zOrder": "128", + "measuredW": "144", + "measuredH": "40", + "w": "144", + "h": "40", + "x": "668", + "y": "1196", "properties": { - "controlName": "100-nosql-databases:document-databases" + "controlName": "103-learn-a-language:php" }, "children": { "controls": { @@ -7456,191 +6494,155 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "174", - "h": "154", + "w": "136", + "h": "40", "measuredW": "200", "measuredH": "140", - "x": "0", - "y": "0" + "x": "8", + "y": "0", + "properties": { + "color": "16770457" + } }, { "ID": "1", - "typeID": "TextArea", + "typeID": "Label", "zOrder": "1", - "w": "137", - "h": "43", - "measuredW": "200", - "measuredH": "140", - "x": "21", - "y": "15", + "w": "34", + "measuredW": "34", + "measuredH": "25", + "x": "59", + "y": "7", "properties": { - "color": "16770457" + "size": "17", + "text": "PHP" } }, { "ID": "2", - "typeID": "Label", + "typeID": "Icon", "zOrder": "2", - "measuredW": "78", - "measuredH": "25", - "x": "51", - "y": "24", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", "properties": { - "size": "17", - "text": "MongoDB" + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } } }, { "ID": "3", - "typeID": "TextArea", + "typeID": "Icon", "zOrder": "3", - "w": "137", - "h": "43", - "measuredW": "200", - "measuredH": "140", - "x": "21", - "y": "63", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", "properties": { - "color": "16770457" + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } } }, { "ID": "4", - "typeID": "Label", + "typeID": "Icon", "zOrder": "4", - "measuredW": "74", - "measuredH": "25", - "x": "53", - "y": "72", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", "properties": { - "size": "17", - "text": "CouchDB" + "color": "3700253", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "2509", + "typeID": "__group__", + "zOrder": "129", + "measuredW": "146", + "measuredH": "40", + "w": "146", + "h": "40", + "x": "846", + "y": "1110", + "properties": { + "controlName": "105-learn-a-language:javascript" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "136", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" } }, { - "ID": "5", + "ID": "1", "typeID": "Label", - "zOrder": "5", - "measuredW": "117", + "zOrder": "1", + "w": "85", + "measuredW": "81", "measuredH": "25", - "x": "31", - "y": "114", + "x": "27", + "y": "8", "properties": { "size": "17", - "text": "Document DBs" + "text": "JavaScript" } }, { - "ID": "6", - "typeID": "__group__", - "zOrder": "6", + "ID": "2", + "typeID": "Icon", + "zOrder": "2", "measuredW": "24", "measuredH": "24", - "w": "24", - "h": "24", - "x": "12", - "y": "22", - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Icon", - "zOrder": "0", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "1", - "typeID": "Icon", - "zOrder": "1", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", - "properties": { - "color": "10027263", - "icon": { - "ID": "check-circle", - "size": "small" - } - } - } - ] + "x": "122", + "y": "7", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" } } }, { - "ID": "7", - "typeID": "__group__", - "zOrder": "7", + "ID": "4", + "typeID": "Icon", + "zOrder": "3", "measuredW": "24", "measuredH": "24", - "w": "24", - "h": "24", - "x": "11", - "y": "71", - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Icon", - "zOrder": "0", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "1", - "typeID": "Icon", - "zOrder": "1", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", - "properties": { - "color": "3700253", - "icon": { - "ID": "check-circle", - "size": "small" - } - } - } - ] + "x": "122", + "y": "7", + "properties": { + "color": "3700253", + "icon": { + "ID": "check-circle", + "size": "small" } } } @@ -7649,17 +6651,17 @@ } }, { - "ID": "2025", + "ID": "2510", "typeID": "__group__", - "zOrder": "155", - "measuredW": "168", - "measuredH": "154", - "w": "168", - "h": "154", - "x": "1646", - "y": "2923", + "zOrder": "130", + "measuredW": "146", + "measuredH": "40", + "w": "146", + "h": "40", + "x": "846", + "y": "1153", "properties": { - "controlName": "102-nosql-databases:timeseries-databases" + "controlName": "106-learn-a-language:python" }, "children": { "controls": { @@ -7668,191 +6670,171 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "168", - "h": "154", + "w": "136", + "h": "40", "measuredW": "200", "measuredH": "140", "x": "0", - "y": "0" + "y": "0", + "properties": { + "color": "16770457" + } }, { "ID": "1", - "typeID": "TextArea", + "typeID": "Label", "zOrder": "1", - "w": "137", - "h": "43", - "measuredW": "200", - "measuredH": "140", - "x": "17", - "y": "14", + "w": "56", + "measuredW": "53", + "measuredH": "25", + "x": "40", + "y": "8", "properties": { - "color": "16770457" + "size": "17", + "text": "Python" } }, { "ID": "2", - "typeID": "Label", + "typeID": "Icon", "zOrder": "2", - "measuredW": "65", - "measuredH": "25", - "x": "53", - "y": "23", + "measuredW": "24", + "measuredH": "24", + "x": "122", + "y": "8", "properties": { - "size": "17", - "text": "InfluxDB" + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } } }, { "ID": "3", - "typeID": "TextArea", + "typeID": "Icon", "zOrder": "3", - "w": "137", - "h": "43", - "measuredW": "200", - "measuredH": "140", - "x": "17", - "y": "62", + "measuredW": "24", + "measuredH": "24", + "x": "122", + "y": "8", "properties": { - "color": "16770457" + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } } }, { "ID": "4", - "typeID": "Label", + "typeID": "Icon", "zOrder": "4", - "measuredW": "81", - "measuredH": "25", - "x": "45", - "y": "71", + "measuredW": "24", + "measuredH": "24", + "x": "122", + "y": "8", "properties": { - "size": "17", - "text": "TimeScale" + "color": "3700253", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "2511", + "typeID": "__group__", + "zOrder": "131", + "measuredW": "146", + "measuredH": "40", + "w": "146", + "h": "40", + "x": "846", + "y": "1196", + "properties": { + "controlName": "107-learn-a-language:ruby" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "136", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" } }, { - "ID": "5", + "ID": "1", "typeID": "Label", - "zOrder": "5", - "measuredW": "91", + "zOrder": "1", + "w": "42", + "measuredW": "39", "measuredH": "25", - "x": "38", - "y": "113", + "x": "47", + "y": "8", "properties": { "size": "17", - "text": "Time Series" + "text": "Ruby" } }, { - "ID": "6", - "typeID": "__group__", - "zOrder": "6", + "ID": "2", + "typeID": "Icon", + "zOrder": "2", "measuredW": "24", "measuredH": "24", - "w": "24", - "h": "24", - "x": "137", - "y": "21", - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Icon", - "zOrder": "0", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "1", - "typeID": "Icon", - "zOrder": "1", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", - "properties": { - "color": "10027263", - "icon": { - "ID": "check-circle", - "size": "small" - } - } - } - ] + "x": "122", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" } } }, { - "ID": "7", - "typeID": "__group__", - "zOrder": "7", + "ID": "3", + "typeID": "Icon", + "zOrder": "3", "measuredW": "24", "measuredH": "24", - "w": "24", - "h": "24", - "x": "141", - "y": "70", - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Icon", - "zOrder": "0", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "1", - "typeID": "Icon", - "zOrder": "1", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", - "properties": { - "color": "3700253", - "icon": { - "ID": "check-circle", - "size": "small" - } - } - } - ] + "x": "122", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "4", + "typeID": "Icon", + "zOrder": "4", + "measuredW": "24", + "measuredH": "24", + "x": "122", + "y": "8", + "properties": { + "color": "3700253", + "icon": { + "ID": "check-circle", + "size": "small" } } } @@ -7861,17 +6843,47 @@ } }, { - "ID": "2026", + "ID": "2512", + "typeID": "Arrow", + "zOrder": "132", + "w": "175", + "h": "48", + "measuredW": "150", + "measuredH": "100", + "x": "1342", + "y": "960", + "properties": { + "color": "2848996", + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 175.29875220380154, + "y": 48.53446090344232 + }, + "p1": { + "x": 0.5008052694036629, + "y": -0.08367970543914485 + }, + "p2": { + "x": 0.1930231075264146, + "y": 0.6021142674793509 + } + } + }, + { + "ID": "2513", "typeID": "__group__", - "zOrder": "156", - "measuredW": "174", - "measuredH": "154", - "w": "174", - "h": "154", - "x": "1475", - "y": "3072", + "zOrder": "133", + "measuredW": "227", + "measuredH": "50", + "w": "227", + "h": "50", + "x": "1140", + "y": "927", "properties": { - "controlName": "103-nosql-databases:realtime-databases" + "controlName": "100-internet" }, "children": { "controls": { @@ -7880,191 +6892,106 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "174", - "h": "154", + "w": "227", + "h": "50", "measuredW": "200", "measuredH": "140", "x": "0", - "y": "0" - }, - { - "ID": "1", - "typeID": "TextArea", - "zOrder": "1", - "w": "137", - "h": "43", - "measuredW": "200", - "measuredH": "140", - "x": "21", - "y": "14", + "y": "0", "properties": { - "color": "16770457" + "color": "16776960" } }, { - "ID": "2", + "ID": "1", "typeID": "Label", - "zOrder": "2", - "measuredW": "68", + "zOrder": "1", + "measuredW": "62", "measuredH": "25", - "x": "56", - "y": "23", + "x": "83", + "y": "13", "properties": { - "size": "17", - "text": "Firebase" + "text": "Internet", + "size": "17" } - }, + } + ] + } + } + }, + { + "ID": "2514", + "typeID": "__group__", + "zOrder": "134", + "measuredW": "310", + "measuredH": "44", + "w": "310", + "h": "44", + "x": "1510", + "y": "855", + "properties": { + "controlName": "100-internet:how-does-the-internet-work" + }, + "children": { + "controls": { + "control": [ { - "ID": "3", - "typeID": "TextArea", - "zOrder": "3", - "w": "137", - "h": "43", + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "299", + "h": "44", "measuredW": "200", "measuredH": "140", - "x": "21", - "y": "62", + "x": "0", + "y": "0", "properties": { "color": "16770457" } }, { - "ID": "4", - "typeID": "Label", - "zOrder": "4", - "measuredW": "83", - "measuredH": "25", - "x": "48", - "y": "71", - "properties": { - "size": "17", - "text": "RethinkDB" - } - }, - { - "ID": "5", + "ID": "1", "typeID": "Label", - "zOrder": "5", - "measuredW": "69", + "zOrder": "1", + "w": "223", + "measuredW": "219", "measuredH": "25", - "x": "55", - "y": "113", + "x": "38", + "y": "9", "properties": { "size": "17", - "text": "Realtime" + "text": "How does the internet work?" } }, { - "ID": "6", - "typeID": "__group__", - "zOrder": "6", + "ID": "2", + "typeID": "Icon", + "zOrder": "2", "measuredW": "24", "measuredH": "24", - "w": "24", - "h": "24", - "x": "9", - "y": "23", - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Icon", - "zOrder": "0", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "1", - "typeID": "Icon", - "zOrder": "1", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", - "properties": { - "color": "10027263", - "icon": { - "ID": "check-circle", - "size": "small" - } - } - } - ] + "x": "286", + "y": "9", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" } } }, { - "ID": "7", - "typeID": "__group__", - "zOrder": "7", + "ID": "3", + "typeID": "Icon", + "zOrder": "3", "measuredW": "24", "measuredH": "24", - "w": "24", - "h": "24", - "x": "10", - "y": "71", - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Icon", - "zOrder": "0", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "1", - "typeID": "Icon", - "zOrder": "1", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", - "properties": { - "color": "3700253", - "icon": { - "ID": "check-circle", - "size": "small" - } - } - } - ] + "x": "286", + "y": "9", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" } } } @@ -8073,17 +7000,17 @@ } }, { - "ID": "2027", + "ID": "2515", "typeID": "__group__", - "zOrder": "157", - "measuredW": "168", - "measuredH": "154", - "w": "168", - "h": "154", - "x": "1646", - "y": "3072", + "zOrder": "135", + "measuredW": "310", + "measuredH": "40", + "w": "310", + "h": "40", + "x": "1510", + "y": "902", "properties": { - "controlName": "101-nosql-databases:column-databases" + "controlName": "101-internet:what-is-http" }, "children": { "controls": { @@ -8092,191 +7019,139 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "168", - "h": "154", + "w": "299", + "h": "40", "measuredW": "200", "measuredH": "140", "x": "0", - "y": "0" + "y": "0", + "properties": { + "color": "16770457" + } }, { "ID": "1", - "typeID": "TextArea", + "typeID": "Label", "zOrder": "1", - "w": "137", - "h": "43", - "measuredW": "200", - "measuredH": "140", - "x": "15", - "y": "14", + "w": "119", + "measuredW": "113", + "measuredH": "25", + "x": "90", + "y": "8", "properties": { - "color": "16770457" + "size": "17", + "text": "What is HTTP?" } }, { "ID": "2", - "typeID": "Label", + "typeID": "Icon", "zOrder": "2", - "measuredW": "83", - "measuredH": "25", - "x": "42", - "y": "23", + "measuredW": "24", + "measuredH": "24", + "x": "286", + "y": "8", "properties": { - "size": "17", - "text": "Cassandra" + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } } }, { "ID": "3", - "typeID": "TextArea", + "typeID": "Icon", "zOrder": "3", - "w": "137", - "h": "43", + "measuredW": "24", + "measuredH": "24", + "x": "286", + "y": "8", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "2516", + "typeID": "__group__", + "zOrder": "136", + "measuredW": "310", + "measuredH": "40", + "w": "310", + "h": "40", + "x": "1510", + "y": "946", + "properties": { + "controlName": "102-internet:browsers-and-how-they-work" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "299", + "h": "40", "measuredW": "200", "measuredH": "140", - "x": "15", - "y": "62", + "x": "0", + "y": "0", "properties": { "color": "16770457" } }, { - "ID": "4", - "typeID": "Label", - "zOrder": "4", - "measuredW": "53", - "measuredH": "25", - "x": "57", - "y": "71", - "properties": { - "size": "17", - "text": "HBase" - } - }, - { - "ID": "5", + "ID": "1", "typeID": "Label", - "zOrder": "5", - "measuredW": "96", + "zOrder": "1", + "w": "230", + "measuredW": "225", "measuredH": "25", - "x": "36", - "y": "113", + "x": "34", + "y": "8", "properties": { "size": "17", - "text": "Column DBs" + "text": "Browsers and how they work?" } }, { - "ID": "6", - "typeID": "__group__", - "zOrder": "6", + "ID": "2", + "typeID": "Icon", + "zOrder": "2", "measuredW": "24", "measuredH": "24", - "w": "24", - "h": "24", - "x": "137", - "y": "23", - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Icon", - "zOrder": "0", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "1", - "typeID": "Icon", - "zOrder": "1", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", - "properties": { - "color": "10027263", - "icon": { - "ID": "check-circle", - "size": "small" - } - } - } - ] + "x": "286", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" } } }, { - "ID": "7", - "typeID": "__group__", - "zOrder": "7", + "ID": "3", + "typeID": "Icon", + "zOrder": "3", "measuredW": "24", "measuredH": "24", - "w": "24", - "h": "24", - "x": "137", - "y": "71", - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Icon", - "zOrder": "0", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "1", - "typeID": "Icon", - "zOrder": "1", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", - "properties": { - "color": "3700253", - "icon": { - "ID": "check-circle", - "size": "small" - } - } - } - ] + "x": "286", + "y": "8", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" } } } @@ -8285,17 +7160,17 @@ } }, { - "ID": "2028", + "ID": "2517", "typeID": "__group__", - "zOrder": "158", - "measuredW": "174", - "measuredH": "154", - "w": "174", - "h": "154", - "x": "1475", - "y": "3222", + "zOrder": "137", + "measuredW": "311", + "measuredH": "40", + "w": "311", + "h": "40", + "x": "1511", + "y": "990", "properties": { - "controlName": "104-nosql-databases:key-value-databases" + "controlName": "103-internet:dns-and-how-it-works" }, "children": { "controls": { @@ -8304,191 +7179,139 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "174", - "h": "154", + "w": "300", + "h": "40", "measuredW": "200", "measuredH": "140", "x": "0", - "y": "0" + "y": "0", + "properties": { + "color": "16770457" + } }, { "ID": "1", - "typeID": "TextArea", + "typeID": "Label", "zOrder": "1", - "w": "143", - "h": "43", - "measuredW": "200", - "measuredH": "140", - "x": "18", - "y": "14", + "w": "179", + "measuredW": "175", + "measuredH": "25", + "x": "60", + "y": "8", "properties": { - "color": "16770457" + "size": "17", + "text": "DNS and how it works?" } }, { "ID": "2", - "typeID": "Label", + "typeID": "Icon", "zOrder": "2", - "measuredW": "45", - "measuredH": "25", - "x": "64", - "y": "23", + "measuredW": "24", + "measuredH": "24", + "x": "287", + "y": "8", "properties": { - "size": "17", - "text": "Redis" + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } } }, { "ID": "3", - "typeID": "TextArea", + "typeID": "Icon", "zOrder": "3", - "w": "143", - "h": "43", - "measuredW": "200", - "measuredH": "140", - "x": "18", - "y": "61", + "measuredW": "24", + "measuredH": "24", + "x": "287", + "y": "8", "properties": { - "color": "16770457" + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } } - }, + } + ] + } + } + }, + { + "ID": "2518", + "typeID": "__group__", + "zOrder": "138", + "measuredW": "312", + "measuredH": "40", + "w": "312", + "h": "40", + "x": "1510", + "y": "1034", + "properties": { + "controlName": "104-internet:what-is-domain-name" + }, + "children": { + "controls": { + "control": [ { - "ID": "4", - "typeID": "Label", - "zOrder": "4", - "measuredW": "88", - "measuredH": "25", - "x": "43", - "y": "70", + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "302", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", "properties": { - "size": "17", - "text": "DynamoDB" + "color": "16770457" } }, { - "ID": "5", + "ID": "1", "typeID": "Label", - "zOrder": "5", - "measuredW": "76", + "zOrder": "1", + "w": "179", + "measuredW": "180", "measuredH": "25", - "x": "52", - "y": "114", + "x": "61", + "y": "8", "properties": { "size": "17", - "text": "Key-Value" + "text": "What is Domain Name?" } }, { - "ID": "6", - "typeID": "__group__", - "zOrder": "6", + "ID": "2", + "typeID": "Icon", + "zOrder": "2", "measuredW": "24", "measuredH": "24", - "w": "24", - "h": "24", - "x": "11", - "y": "21", - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Icon", - "zOrder": "0", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "1", - "typeID": "Icon", - "zOrder": "1", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", - "properties": { - "color": "10027263", - "icon": { - "ID": "check-circle", - "size": "small" - } - } - } - ] + "x": "288", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" } } }, { - "ID": "7", - "typeID": "__group__", - "zOrder": "7", + "ID": "3", + "typeID": "Icon", + "zOrder": "3", "measuredW": "24", "measuredH": "24", - "w": "24", - "h": "24", - "x": "9", - "y": "70", - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Icon", - "zOrder": "0", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "1", - "typeID": "Icon", - "zOrder": "1", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", - "properties": { - "color": "3700253", - "icon": { - "ID": "check-circle", - "size": "small" - } - } - } - ] + "x": "288", + "y": "8", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" } } } @@ -8497,26 +7320,57 @@ } }, { - "ID": "2029", + "ID": "2519", "typeID": "__group__", - "zOrder": "159", - "measuredW": "24", - "measuredH": "24", - "w": "24", - "h": "24", - "x": "1802", - "y": "3036", + "zOrder": "139", + "measuredW": "313", + "measuredH": "40", + "w": "313", + "h": "40", + "x": "1511", + "y": "1078", + "properties": { + "controlName": "105-internet:what-is-hosting" + }, "children": { "controls": { "control": [ { "ID": "0", - "typeID": "Icon", + "typeID": "TextArea", "zOrder": "0", - "measuredW": "24", - "measuredH": "24", + "w": "304", + "h": "40", + "measuredW": "200", + "measuredH": "140", "x": "0", "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "133", + "measuredW": "126", + "measuredH": "25", + "x": "85", + "y": "8", + "properties": { + "size": "17", + "text": "What is hosting?" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "289", + "y": "8", "properties": { "color": "16777215", "icon": { @@ -8526,15 +7380,15 @@ } }, { - "ID": "1", + "ID": "3", "typeID": "Icon", - "zOrder": "1", + "zOrder": "3", "measuredW": "24", "measuredH": "24", - "x": "0", - "y": "0", + "x": "289", + "y": "8", "properties": { - "color": "10066329", + "color": "10027263", "icon": { "ID": "check-circle", "size": "small" @@ -8546,26 +7400,56 @@ } }, { - "ID": "2030", + "ID": "2520", "typeID": "__group__", - "zOrder": "160", - "measuredW": "24", - "measuredH": "24", - "w": "24", - "h": "24", - "x": "1802", - "y": "3185", + "zOrder": "140", + "measuredW": "82", + "measuredH": "50", + "w": "82", + "h": "50", + "x": "1293", + "y": "1102", + "properties": { + "controlName": "100-version-control-systems:git" + }, "children": { "controls": { "control": [ { "ID": "0", - "typeID": "Icon", + "typeID": "TextArea", "zOrder": "0", - "measuredW": "24", - "measuredH": "24", + "w": "71", + "h": "50", + "measuredW": "200", + "measuredH": "140", "x": "0", "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "22", + "measuredH": "25", + "x": "25", + "y": "12", + "properties": { + "size": "17", + "text": "Git" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "58", + "y": "13", "properties": { "color": "16777215", "icon": { @@ -8575,15 +7459,15 @@ } }, { - "ID": "1", + "ID": "3", "typeID": "Icon", - "zOrder": "1", + "zOrder": "3", "measuredW": "24", "measuredH": "24", - "x": "0", - "y": "0", + "x": "58", + "y": "13", "properties": { - "color": "10066329", + "color": "10027263", "icon": { "ID": "check-circle", "size": "small" @@ -8595,75 +7479,56 @@ } }, { - "ID": "2031", + "ID": "2521", "typeID": "__group__", - "zOrder": "161", - "measuredW": "24", - "measuredH": "24", - "w": "24", - "h": "24", - "x": "1466", - "y": "3185", + "zOrder": "141", + "measuredW": "138", + "measuredH": "49", + "w": "138", + "h": "49", + "x": "1684", + "y": "1184", + "properties": { + "controlName": "100-repo-hosting-services:github" + }, "children": { "controls": { "control": [ { "ID": "0", - "typeID": "Icon", + "typeID": "TextArea", "zOrder": "0", - "measuredW": "24", - "measuredH": "24", + "w": "131", + "h": "49", + "measuredW": "200", + "measuredH": "140", "x": "0", "y": "0", "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } + "color": "16770457" } }, { "ID": "1", - "typeID": "Icon", + "typeID": "Label", "zOrder": "1", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", + "measuredW": "54", + "measuredH": "25", + "x": "39", + "y": "12", "properties": { - "color": "10066329", - "icon": { - "ID": "check-circle", - "size": "small" - } + "text": "GitHub", + "size": "17" } - } - ] - } - } - }, - { - "ID": "2034", - "typeID": "__group__", - "zOrder": "162", - "measuredW": "24", - "measuredH": "24", - "w": "24", - "h": "24", - "x": "1490", - "y": "2910", - "children": { - "controls": { - "control": [ + }, { - "ID": "0", + "ID": "2", "typeID": "Icon", - "zOrder": "0", + "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "0", - "y": "0", + "x": "114", + "y": "13", "properties": { "color": "16777215", "icon": { @@ -8673,19 +7538,19 @@ } }, { - "ID": "1", + "ID": "3", "typeID": "Icon", - "zOrder": "1", + "zOrder": "3", "measuredW": "24", "measuredH": "24", - "x": "0", - "y": "0", + "x": "114", + "y": "13", "properties": { + "color": "10027263", "icon": { "ID": "check-circle", "size": "small" - }, - "color": "10066329" + } } } ] @@ -8693,48 +7558,46 @@ } }, { - "ID": "2035", + "ID": "2522", "typeID": "__group__", - "zOrder": "163", - "measuredW": "24", - "measuredH": "24", - "w": "24", - "h": "24", - "x": "1466", - "y": "2910", + "zOrder": "142", + "measuredW": "227", + "measuredH": "50", + "w": "227", + "h": "50", + "x": "1333", + "y": "1292", + "properties": { + "controlName": "105-repo-hosting-services" + }, "children": { "controls": { "control": [ { "ID": "0", - "typeID": "Icon", + "typeID": "TextArea", "zOrder": "0", - "measuredW": "24", - "measuredH": "24", + "w": "227", + "h": "50", + "measuredW": "200", + "measuredH": "140", "x": "0", "y": "0", "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } + "color": "16776960" } }, { "ID": "1", - "typeID": "Icon", + "typeID": "Label", "zOrder": "1", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", + "measuredW": "172", + "measuredH": "25", + "x": "28", + "y": "12", "properties": { - "icon": { - "ID": "check-circle", - "size": "small" - }, - "color": "10027263" + "text": "Repo hosting services", + "size": "17" } } ] @@ -8742,17 +7605,17 @@ } }, { - "ID": "2036", + "ID": "2523", "typeID": "__group__", - "zOrder": "164", - "measuredW": "211", + "zOrder": "143", + "measuredW": "226", "measuredH": "50", - "w": "211", + "w": "226", "h": "50", - "x": "679", - "y": "2008", + "x": "1139", + "y": "1023", "properties": { - "controlName": "109-scaling-databases" + "controlName": "104-version-control-systems" }, "children": { "controls": { @@ -8761,7 +7624,7 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "211", + "w": "226", "h": "50", "measuredW": "200", "measuredH": "140", @@ -8775,13 +7638,13 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "144", + "measuredW": "186", "measuredH": "25", - "x": "34", + "x": "20", "y": "12", "properties": { - "size": "17", - "text": "Scaling Databases" + "text": "Version Control Systems", + "size": "17" } } ] @@ -8789,17 +7652,17 @@ } }, { - "ID": "2037", + "ID": "2524", "typeID": "__group__", - "zOrder": "165", - "measuredW": "153", - "measuredH": "40", - "w": "153", - "h": "40", - "x": "672", - "y": "1742", + "zOrder": "144", + "measuredW": "140", + "measuredH": "49", + "w": "140", + "h": "49", + "x": "1684", + "y": "1291", "properties": { - "controlName": "106-apis:graphql" + "controlName": "102-repo-hosting-services:bitbucket" }, "children": { "controls": { @@ -8808,11 +7671,11 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "146", - "h": "40", + "w": "131", + "h": "49", "measuredW": "200", "measuredH": "140", - "x": "7", + "x": "0", "y": "0", "properties": { "color": "16770457" @@ -8822,95 +7685,62 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "71", + "measuredW": "73", "measuredH": "25", - "x": "44", - "y": "7", + "x": "29", + "y": "12", "properties": { - "align": "center", - "size": "17", - "text": "GraphQL" + "color": "3355443", + "text": "Bitbucket", + "size": "17" } }, { - "ID": "4", + "ID": "3", "typeID": "Icon", "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "0", - "y": "8", + "x": "116", + "y": "13", "properties": { "color": "16777215", "icon": { "ID": "circle", "size": "small" - } - } - }, - { - "ID": "5", - "typeID": "Icon", - "zOrder": "3", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "8", - "properties": { - "color": "10066329", - "icon": { - "ID": "check-circle", - "size": "small" - } - } - } - ] - } - } - }, - { - "ID": "2038", - "typeID": "__group__", - "zOrder": "166", - "measuredW": "144", - "measuredH": "40", - "w": "144", - "h": "40", - "x": "1673", - "y": "2653", - "properties": { - "controlName": "ext_link:roadmap.sh/kubernetes" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "144", - "h": "40", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", + } + } + }, + { + "ID": "4", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "116", + "y": "13", "properties": { - "color": "4273622", - "borderColor": "4273622" + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } } }, { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "90", - "measuredH": "25", - "x": "27", - "y": "7", + "ID": "5", + "typeID": "Icon", + "zOrder": "4", + "measuredW": "24", + "measuredH": "24", + "x": "116", + "y": "13", "properties": { - "size": "17", - "text": "Kubernetes", - "color": "16777215" + "color": "3700253", + "icon": { + "ID": "check-circle", + "size": "small" + } } } ] @@ -8918,17 +7748,17 @@ } }, { - "ID": "2039", + "ID": "2525", "typeID": "__group__", - "zOrder": "167", - "measuredW": "169", - "measuredH": "102", - "w": "169", - "h": "102", - "x": "1646", - "y": "3222", + "zOrder": "145", + "measuredW": "140", + "measuredH": "49", + "w": "140", + "h": "49", + "x": "1684", + "y": "1237", "properties": { - "controlName": "120-graph-databases" + "controlName": "101-repo-hosting-services:gitlab" }, "children": { "controls": { @@ -8937,115 +7767,76 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "169", - "h": "102", + "w": "131", + "h": "49", "measuredW": "200", "measuredH": "140", "x": "0", - "y": "0" + "y": "0", + "properties": { + "color": "16770457" + } }, { "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "85", + "w": "52", + "measuredW": "51", "measuredH": "25", - "x": "42", - "y": "64", + "x": "40", + "y": "12", "properties": { + "color": "3355443", "size": "17", - "text": "Graph DBs" + "text": "GitLab" } }, { - "ID": "2", - "typeID": "TextArea", + "ID": "3", + "typeID": "Icon", "zOrder": "2", - "w": "143", - "h": "43", - "measuredW": "200", - "measuredH": "140", - "x": "14", - "y": "15", + "measuredW": "24", + "measuredH": "24", + "x": "116", + "y": "13", "properties": { - "color": "16770457" + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } } }, { - "ID": "3", - "typeID": "Label", + "ID": "4", + "typeID": "Icon", "zOrder": "3", - "measuredW": "47", - "measuredH": "25", - "x": "62", - "y": "24", + "measuredW": "24", + "measuredH": "24", + "x": "116", + "y": "13", "properties": { - "size": "17", - "text": "Neo4j" + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } } }, { - "ID": "4", - "typeID": "__group__", + "ID": "5", + "typeID": "Icon", "zOrder": "4", "measuredW": "24", "measuredH": "24", - "w": "24", - "h": "24", - "x": "5", - "y": "24", - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Icon", - "zOrder": "0", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "1", - "typeID": "Icon", - "zOrder": "1", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", - "properties": { - "color": "3700253", - "icon": { - "ID": "check-circle", - "size": "small" - } - } - } - ] + "x": "116", + "y": "13", + "properties": { + "color": "3700253", + "icon": { + "ID": "check-circle", + "size": "small" } } } @@ -9054,28 +7845,17 @@ } }, { - "ID": "2040", - "typeID": "TextArea", - "zOrder": "168", - "w": "271", - "h": "224", - "measuredW": "200", - "measuredH": "140", - "x": "1551", - "y": "1874" - }, - { - "ID": "2041", + "ID": "2526", "typeID": "__group__", - "zOrder": "169", - "measuredW": "86", - "measuredH": "42", - "w": "86", - "h": "42", - "x": "1567", - "y": "1938", + "zOrder": "146", + "measuredW": "212", + "measuredH": "40", + "w": "212", + "h": "40", + "x": "674", + "y": "2218", "properties": { - "controlName": "106-web-security-knowledge:cors" + "controlName": "100-more-about-databases:orms" }, "children": { "controls": { @@ -9084,11 +7864,11 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "86", - "h": "42", + "w": "205", + "h": "40", "measuredW": "200", "measuredH": "140", - "x": "0", + "x": "7", "y": "0", "properties": { "color": "16770457" @@ -9098,13 +7878,46 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "48", + "w": "49", + "measuredW": "49", "measuredH": "25", - "x": "25", - "y": "9", + "x": "85", + "y": "7", "properties": { - "text": "CORS", - "size": "17" + "size": "17", + "text": "ORMs" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } } } ] @@ -9112,17 +7925,17 @@ } }, { - "ID": "2042", + "ID": "2527", "typeID": "__group__", - "zOrder": "170", - "measuredW": "90", - "measuredH": "43", - "w": "90", - "h": "43", - "x": "1565", - "y": "1888", + "zOrder": "147", + "measuredW": "169", + "measuredH": "50", + "w": "169", + "h": "50", + "x": "984", + "y": "2008", "properties": { - "controlName": "105-web-security-knowledge:https" + "controlName": "113-ci-cd" }, "children": { "controls": { @@ -9131,27 +7944,28 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "90", - "h": "43", + "w": "169", + "h": "50", "measuredW": "200", "measuredH": "140", "x": "0", "y": "0", "properties": { - "color": "16770457" + "color": "16776960" } }, { "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "54", + "w": "62", + "measuredW": "59", "measuredH": "25", - "x": "21", - "y": "10", + "x": "54", + "y": "12", "properties": { - "text": "HTTPS", - "size": "17" + "size": "17", + "text": "CI / CD" } } ] @@ -9159,17 +7973,17 @@ } }, { - "ID": "2043", + "ID": "2528", "typeID": "__group__", - "zOrder": "171", - "measuredW": "87", - "measuredH": "44", - "w": "87", - "h": "44", - "x": "1568", - "y": "1988", + "zOrder": "148", + "measuredW": "271", + "measuredH": "40", + "w": "271", + "h": "40", + "x": "1561", + "y": "2208", "properties": { - "controlName": "105-web-security-knowledge:content-security-policy" + "controlName": "100-design-and-development-principles:gof-design-patterns" }, "children": { "controls": { @@ -9178,8 +7992,8 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "87", - "h": "44", + "w": "260", + "h": "40", "measuredW": "200", "measuredH": "140", "x": "0", @@ -9192,13 +8006,46 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "34", + "w": "168", + "measuredW": "164", "measuredH": "25", - "x": "27", - "y": "10", + "x": "46", + "y": "7", "properties": { "size": "17", - "text": "CSP" + "text": "GOF Design Patterns" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "247", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "247", + "y": "8", + "properties": { + "icon": { + "ID": "check-circle", + "size": "small" + }, + "color": "10027263" } } ] @@ -9206,17 +8053,17 @@ } }, { - "ID": "2044", + "ID": "2529", "typeID": "__group__", - "zOrder": "172", - "measuredW": "147", - "measuredH": "43", - "w": "147", - "h": "43", - "x": "1660", - "y": "1888", + "zOrder": "149", + "measuredW": "271", + "measuredH": "40", + "w": "271", + "h": "40", + "x": "1561", + "y": "2252", "properties": { - "controlName": "108-web-security-knowledge:owasp" + "controlName": "101-design-and-development-principles:domain-driven-design" }, "children": { "controls": { @@ -9225,8 +8072,8 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "147", - "h": "43", + "w": "260", + "h": "40", "measuredW": "200", "measuredH": "140", "x": "0", @@ -9239,60 +8086,46 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "104", + "w": "175", + "measuredW": "172", "measuredH": "25", - "x": "22", - "y": "10", + "x": "42", + "y": "7", "properties": { "size": "17", - "text": "OWASP Risks" + "text": "Domain Driven Design" } - } - ] - } - } - }, - { - "ID": "2045", - "typeID": "__group__", - "zOrder": "173", - "measuredW": "149", - "measuredH": "43", - "w": "149", - "h": "43", - "x": "1659", - "y": "1938", - "properties": { - "controlName": "107-web-security-knowledge:ssl-tls" - }, - "children": { - "controls": { - "control": [ + }, { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "149", - "h": "43", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "247", + "y": "8", "properties": { - "color": "16770457" + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } } }, { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "69", - "measuredH": "25", - "x": "40", - "y": "9", + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "247", + "y": "8", "properties": { - "text": "SSL/TLS", - "size": "17" + "icon": { + "ID": "check-circle", + "size": "small" + }, + "color": "10027263" } } ] @@ -9300,17 +8133,17 @@ } }, { - "ID": "2048", + "ID": "2530", "typeID": "__group__", - "zOrder": "174", + "zOrder": "150", "measuredW": "271", "measuredH": "40", "w": "271", "h": "40", "x": "1561", - "y": "2340", + "y": "2296", "properties": { - "controlName": "103-design-and-development-principles:cqrs" + "controlName": "102-design-and-development-principles:test-driven-development" }, "children": { "controls": { @@ -9333,13 +8166,14 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "48", + "w": "196", + "measuredW": "194", "measuredH": "25", - "x": "106", + "x": "32", "y": "7", "properties": { "size": "17", - "text": "CQRS" + "text": "Test Driven Development" } }, { @@ -9379,17 +8213,17 @@ } }, { - "ID": "2049", + "ID": "2531", "typeID": "__group__", - "zOrder": "175", - "measuredW": "270", - "measuredH": "40", - "w": "270", - "h": "40", - "x": "1561", - "y": "2384", + "zOrder": "151", + "measuredW": "210", + "measuredH": "37", + "w": "210", + "h": "37", + "x": "1005", + "y": "2668", "properties": { - "controlName": "104-design-and-development-principles:event-sourcing" + "controlName": "104-architectural-patterns:serverless" }, "children": { "controls": { @@ -9398,8 +8232,8 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "260", - "h": "40", + "w": "202", + "h": "37", "measuredW": "200", "measuredH": "140", "x": "0", @@ -9412,13 +8246,14 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "116", + "w": "87", + "measuredW": "82", "measuredH": "25", - "x": "72", - "y": "7", + "x": "57", + "y": "6", "properties": { "size": "17", - "text": "Event Sourcing" + "text": "Serverless" } }, { @@ -9427,7 +8262,7 @@ "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "246", + "x": "186", "y": "7", "properties": { "color": "16777215", @@ -9443,14 +8278,14 @@ "zOrder": "3", "measuredW": "24", "measuredH": "24", - "x": "246", + "x": "186", "y": "7", "properties": { + "color": "10027263", "icon": { "ID": "check-circle", "size": "small" - }, - "color": "10027263" + } } } ] @@ -9458,17 +8293,17 @@ } }, { - "ID": "2050", + "ID": "2532", "typeID": "__group__", - "zOrder": "176", - "measuredW": "211", - "measuredH": "37", - "w": "211", - "h": "37", - "x": "1006", - "y": "2708", + "zOrder": "152", + "measuredW": "155", + "measuredH": "40", + "w": "155", + "h": "40", + "x": "670", + "y": "1697", "properties": { - "controlName": "105-architectural-patterns:service-mesh" + "controlName": "103-apis:grpc" }, "children": { "controls": { @@ -9477,11 +8312,11 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "202", - "h": "37", + "w": "145", + "h": "40", "measuredW": "200", "measuredH": "140", - "x": "0", + "x": "10", "y": "0", "properties": { "color": "16770457" @@ -9491,23 +8326,25 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "105", + "w": "90", + "measuredW": "45", "measuredH": "25", - "x": "48", - "y": "6", + "x": "38", + "y": "7", "properties": { + "align": "center", "size": "17", - "text": "Service Mesh" + "text": "gRPC" } }, { - "ID": "2", + "ID": "4", "typeID": "Icon", "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "187", - "y": "7", + "x": "0", + "y": "8", "properties": { "color": "16777215", "icon": { @@ -9517,15 +8354,15 @@ } }, { - "ID": "3", + "ID": "5", "typeID": "Icon", "zOrder": "3", "measuredW": "24", "measuredH": "24", - "x": "187", - "y": "7", + "x": "0", + "y": "8", "properties": { - "color": "10027263", + "color": "10066329", "icon": { "ID": "check-circle", "size": "small" @@ -9537,17 +8374,17 @@ } }, { - "ID": "2051", + "ID": "2533", "typeID": "__group__", - "zOrder": "177", - "measuredW": "211", - "measuredH": "37", - "w": "211", - "h": "37", - "x": "1006", - "y": "2748", + "zOrder": "153", + "measuredW": "323", + "measuredH": "50", + "w": "323", + "h": "50", + "x": "1005", + "y": "2264", "properties": { - "controlName": "106-architectural-patterns:twelve-factor-apps" + "controlName": "ext_link:roadmap.sh/software-design-architecture" }, "children": { "controls": { @@ -9556,58 +8393,241 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "202", - "h": "37", + "w": "323", + "h": "50", "measuredW": "200", "measuredH": "140", "x": "0", "y": "0", "properties": { - "color": "16770457" + "color": "4273622", + "borderColor": "4273622", + "textColor": "16777215" } }, { "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "149", + "measuredW": "240", "measuredH": "25", - "x": "26", - "y": "6", + "x": "42", + "y": "12", "properties": { + "text": "Software Design & Architecture", "size": "17", - "text": "Twelve Factor Apps" + "color": "16777215" + } + } + ] + } + } + }, + { + "ID": "2534", + "typeID": "__group__", + "zOrder": "154", + "measuredW": "174", + "measuredH": "154", + "w": "174", + "h": "154", + "x": "1475", + "y": "2923", + "properties": { + "controlName": "100-nosql-databases:document-databases" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "174", + "h": "154", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0" + }, + { + "ID": "1", + "typeID": "TextArea", + "zOrder": "1", + "w": "137", + "h": "43", + "measuredW": "200", + "measuredH": "140", + "x": "21", + "y": "15", + "properties": { + "color": "16770457" } }, { "ID": "2", - "typeID": "Icon", + "typeID": "Label", "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "187", - "y": "7", + "measuredW": "78", + "measuredH": "25", + "x": "51", + "y": "24", "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } + "size": "17", + "text": "MongoDB" } }, { "ID": "3", - "typeID": "Icon", + "typeID": "TextArea", "zOrder": "3", + "w": "137", + "h": "43", + "measuredW": "200", + "measuredH": "140", + "x": "21", + "y": "63", + "properties": { + "color": "16770457" + } + }, + { + "ID": "4", + "typeID": "Label", + "zOrder": "4", + "measuredW": "74", + "measuredH": "25", + "x": "53", + "y": "72", + "properties": { + "size": "17", + "text": "CouchDB" + } + }, + { + "ID": "5", + "typeID": "Label", + "zOrder": "5", + "measuredW": "117", + "measuredH": "25", + "x": "31", + "y": "114", + "properties": { + "size": "17", + "text": "Document DBs" + } + }, + { + "ID": "6", + "typeID": "__group__", + "zOrder": "6", "measuredW": "24", "measuredH": "24", - "x": "187", - "y": "7", - "properties": { - "color": "10027263", - "icon": { - "ID": "check-circle", - "size": "small" + "w": "24", + "h": "24", + "x": "12", + "y": "22", + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Icon", + "zOrder": "0", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "1", + "typeID": "Icon", + "zOrder": "1", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "7", + "typeID": "__group__", + "zOrder": "7", + "measuredW": "24", + "measuredH": "24", + "w": "24", + "h": "24", + "x": "11", + "y": "71", + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Icon", + "zOrder": "0", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "1", + "typeID": "Icon", + "zOrder": "1", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "3700253", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] } } } @@ -9616,17 +8636,17 @@ } }, { - "ID": "2052", + "ID": "2535", "typeID": "__group__", - "zOrder": "178", - "measuredW": "198", - "measuredH": "159", - "w": "198", - "h": "159", - "x": "1424", - "y": "2674", + "zOrder": "155", + "measuredW": "168", + "measuredH": "154", + "w": "168", + "h": "154", + "x": "1646", + "y": "2923", "properties": { - "controlName": "116-search-engines" + "controlName": "102-nosql-databases:timeseries-databases" }, "children": { "controls": { @@ -9635,8 +8655,8 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "198", - "h": "159", + "w": "168", + "h": "154", "measuredW": "200", "measuredH": "140", "x": "0", @@ -9644,95 +8664,182 @@ }, { "ID": "1", - "typeID": "Label", + "typeID": "TextArea", "zOrder": "1", - "w": "126", - "measuredW": "122", + "w": "137", + "h": "43", + "measuredW": "200", + "measuredH": "140", + "x": "17", + "y": "14", + "properties": { + "color": "16770457" + } + }, + { + "ID": "2", + "typeID": "Label", + "zOrder": "2", + "measuredW": "65", "measuredH": "25", - "x": "36", - "y": "116", + "x": "53", + "y": "23", "properties": { "size": "17", - "text": "Search Engines" + "text": "InfluxDB" } - } - ] - } - } - }, - { - "ID": "2053", - "typeID": "__group__", - "zOrder": "179", - "measuredW": "167", - "measuredH": "40", - "w": "167", - "h": "40", - "x": "1439", - "y": "2691", - "properties": { - "controlName": "100-search-engines:elasticsearch" - }, - "children": { - "controls": { - "control": [ + }, { - "ID": "0", + "ID": "3", "typeID": "TextArea", - "zOrder": "0", - "w": "160", - "h": "40", + "zOrder": "3", + "w": "137", + "h": "43", "measuredW": "200", "measuredH": "140", - "x": "7", - "y": "0", + "x": "17", + "y": "62", "properties": { "color": "16770457" } }, { - "ID": "1", + "ID": "4", "typeID": "Label", - "zOrder": "1", - "w": "106", - "measuredW": "104", + "zOrder": "4", + "measuredW": "81", "measuredH": "25", - "x": "39", - "y": "8", + "x": "45", + "y": "71", "properties": { "size": "17", - "text": "Elasticsearch" + "text": "TimeScale" } }, { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", + "ID": "5", + "typeID": "Label", + "zOrder": "5", + "measuredW": "91", + "measuredH": "25", + "x": "38", + "y": "113", + "properties": { + "size": "17", + "text": "Time Series" + } + }, + { + "ID": "6", + "typeID": "__group__", + "zOrder": "6", "measuredW": "24", "measuredH": "24", - "x": "0", - "y": "7", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" + "w": "24", + "h": "24", + "x": "137", + "y": "21", + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Icon", + "zOrder": "0", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "1", + "typeID": "Icon", + "zOrder": "1", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] } } }, { - "ID": "3", - "typeID": "Icon", - "zOrder": "3", + "ID": "7", + "typeID": "__group__", + "zOrder": "7", "measuredW": "24", "measuredH": "24", - "x": "0", - "y": "7", - "properties": { - "color": "10027263", - "icon": { - "ID": "check-circle", - "size": "small" + "w": "24", + "h": "24", + "x": "141", + "y": "70", + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Icon", + "zOrder": "0", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "1", + "typeID": "Icon", + "zOrder": "1", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "3700253", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] } } } @@ -9741,17 +8848,17 @@ } }, { - "ID": "2054", + "ID": "2536", "typeID": "__group__", - "zOrder": "180", - "measuredW": "167", - "measuredH": "40", - "w": "167", - "h": "40", - "x": "1439", - "y": "2737", + "zOrder": "156", + "measuredW": "174", + "measuredH": "154", + "w": "174", + "h": "154", + "x": "1475", + "y": "3072", "properties": { - "controlName": "101-search-engines:solr" + "controlName": "103-nosql-databases:realtime-databases" }, "children": { "controls": { @@ -9760,138 +8867,191 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "160", - "h": "40", + "w": "174", + "h": "154", "measuredW": "200", "measuredH": "140", - "x": "7", - "y": "0", - "properties": { - "color": "16770457" - } + "x": "0", + "y": "0" }, { "ID": "1", - "typeID": "Label", + "typeID": "TextArea", "zOrder": "1", - "w": "36", - "measuredW": "30", - "measuredH": "25", - "x": "69", - "y": "8", + "w": "137", + "h": "43", + "measuredW": "200", + "measuredH": "140", + "x": "21", + "y": "14", "properties": { - "size": "17", - "text": "Solr" + "color": "16770457" } }, { "ID": "2", - "typeID": "Icon", + "typeID": "Label", "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "8", + "measuredW": "68", + "measuredH": "25", + "x": "56", + "y": "23", "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } + "size": "17", + "text": "Firebase" } }, { "ID": "3", - "typeID": "Icon", - "zOrder": "3", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "8", - "properties": { - "color": "3700253", - "icon": { - "ID": "check-circle", - "size": "small" - } - } - } - ] - } - } - }, - { - "ID": "2055", - "typeID": "__group__", - "zOrder": "181", - "measuredW": "191", - "measuredH": "40", - "w": "191", - "h": "40", - "x": "1275", - "y": "2540", - "properties": { - "controlName": "100-message-brokers:rabbitmq" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", "typeID": "TextArea", - "zOrder": "0", - "w": "182", - "h": "40", + "zOrder": "3", + "w": "137", + "h": "43", "measuredW": "200", "measuredH": "140", - "x": "9", - "y": "0", + "x": "21", + "y": "62", "properties": { "color": "16770457" } }, { - "ID": "1", + "ID": "4", "typeID": "Label", - "zOrder": "1", - "measuredW": "78", + "zOrder": "4", + "measuredW": "83", "measuredH": "25", - "x": "61", - "y": "7", + "x": "48", + "y": "71", "properties": { "size": "17", - "text": "RabbitMQ" + "text": "RethinkDB" } }, { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", + "ID": "5", + "typeID": "Label", + "zOrder": "5", + "measuredW": "69", + "measuredH": "25", + "x": "55", + "y": "113", + "properties": { + "size": "17", + "text": "Realtime" + } + }, + { + "ID": "6", + "typeID": "__group__", + "zOrder": "6", "measuredW": "24", "measuredH": "24", - "x": "0", - "y": "7", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" + "w": "24", + "h": "24", + "x": "9", + "y": "23", + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Icon", + "zOrder": "0", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "1", + "typeID": "Icon", + "zOrder": "1", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] } } }, { - "ID": "3", - "typeID": "Icon", - "zOrder": "3", + "ID": "7", + "typeID": "__group__", + "zOrder": "7", "measuredW": "24", "measuredH": "24", - "x": "0", - "y": "7", - "properties": { - "color": "10027263", - "icon": { - "ID": "check-circle", - "size": "small" + "w": "24", + "h": "24", + "x": "10", + "y": "71", + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Icon", + "zOrder": "0", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "1", + "typeID": "Icon", + "zOrder": "1", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "3700253", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] } } } @@ -9900,17 +9060,17 @@ } }, { - "ID": "2056", + "ID": "2537", "typeID": "__group__", - "zOrder": "182", - "measuredW": "192", - "measuredH": "40", - "w": "192", - "h": "40", - "x": "1275", - "y": "2584", + "zOrder": "157", + "measuredW": "168", + "measuredH": "154", + "w": "168", + "h": "154", + "x": "1646", + "y": "3072", "properties": { - "controlName": "101-message-brokers:kafka" + "controlName": "101-nosql-databases:column-databases" }, "children": { "controls": { @@ -9919,153 +9079,192 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "183", - "h": "40", + "w": "168", + "h": "154", "measuredW": "200", "measuredH": "140", - "x": "9", - "y": "0", - "properties": { - "color": "16770457" - } + "x": "0", + "y": "0" }, { "ID": "1", - "typeID": "Label", + "typeID": "TextArea", "zOrder": "1", - "measuredW": "44", - "measuredH": "25", - "x": "79", - "y": "7", + "w": "137", + "h": "43", + "measuredW": "200", + "measuredH": "140", + "x": "15", + "y": "14", "properties": { - "size": "17", - "text": "Kafka" + "color": "16770457" } }, { "ID": "2", - "typeID": "Icon", + "typeID": "Label", "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "7", + "measuredW": "83", + "measuredH": "25", + "x": "42", + "y": "23", "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } + "size": "17", + "text": "Cassandra" } }, { "ID": "3", - "typeID": "Icon", - "zOrder": "3", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "7", - "properties": { - "icon": { - "ID": "check-circle", - "size": "small" - }, - "color": "3700253" - } - } - ] - } - } - }, - { - "ID": "2057", - "typeID": "__group__", - "zOrder": "183", - "measuredW": "201", - "measuredH": "50", - "w": "201", - "h": "50", - "x": "674", - "y": "2973", - "properties": { - "controlName": "122-server-sent-events" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", "typeID": "TextArea", - "zOrder": "0", - "w": "201", - "h": "50", + "zOrder": "3", + "w": "137", + "h": "43", "measuredW": "200", "measuredH": "140", - "x": "0", - "y": "0", + "x": "15", + "y": "62", "properties": { "color": "16770457" } }, { - "ID": "1", + "ID": "4", "typeID": "Label", - "zOrder": "1", - "measuredW": "148", + "zOrder": "4", + "measuredW": "53", "measuredH": "25", - "x": "27", - "y": "12", + "x": "57", + "y": "71", "properties": { "size": "17", - "text": "Server Sent Events" - } - } - ] - } - } - }, - { - "ID": "2058", - "typeID": "__group__", - "zOrder": "184", - "measuredW": "213", - "measuredH": "50", - "w": "213", - "h": "50", - "x": "1188", - "y": "3224", - "properties": { - "controlName": "123-scalability" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "213", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" + "text": "HBase" } }, { - "ID": "1", + "ID": "5", "typeID": "Label", - "zOrder": "1", - "measuredW": "134", + "zOrder": "5", + "measuredW": "96", "measuredH": "25", - "x": "40", - "y": "13", + "x": "36", + "y": "113", "properties": { "size": "17", - "text": "Building for Scale" + "text": "Column DBs" + } + }, + { + "ID": "6", + "typeID": "__group__", + "zOrder": "6", + "measuredW": "24", + "measuredH": "24", + "w": "24", + "h": "24", + "x": "137", + "y": "23", + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Icon", + "zOrder": "0", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "1", + "typeID": "Icon", + "zOrder": "1", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "7", + "typeID": "__group__", + "zOrder": "7", + "measuredW": "24", + "measuredH": "24", + "w": "24", + "h": "24", + "x": "137", + "y": "71", + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Icon", + "zOrder": "0", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "1", + "typeID": "Icon", + "zOrder": "1", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "3700253", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } } } ] @@ -10073,17 +9272,17 @@ } }, { - "ID": "2059", + "ID": "2538", "typeID": "__group__", - "zOrder": "185", - "measuredW": "232", - "measuredH": "282", - "w": "232", - "h": "282", - "x": "880", - "y": "3212", + "zOrder": "158", + "measuredW": "174", + "measuredH": "154", + "w": "174", + "h": "154", + "x": "1475", + "y": "3222", "properties": { - "controlName": "100-scalability:mitigation-strategies" + "controlName": "104-nosql-databases:key-value-databases" }, "children": { "controls": { @@ -10092,150 +9291,192 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "222", - "h": "274", + "w": "174", + "h": "154", "measuredW": "200", "measuredH": "140", "x": "0", - "y": "8" + "y": "0" }, { "ID": "1", - "typeID": "Label", + "typeID": "TextArea", "zOrder": "1", - "measuredW": "159", - "measuredH": "25", - "x": "31", - "y": "246", + "w": "143", + "h": "43", + "measuredW": "200", + "measuredH": "140", + "x": "18", + "y": "14", "properties": { - "size": "17", - "text": "Mitigation Strategies" + "color": "16770457" } }, { "ID": "2", - "typeID": "Icon", + "typeID": "Label", "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "208", - "y": "0", + "measuredW": "45", + "measuredH": "25", + "x": "64", + "y": "23", "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } + "size": "17", + "text": "Redis" } }, { "ID": "3", - "typeID": "Icon", - "zOrder": "3", - "measuredW": "24", - "measuredH": "24", - "x": "208", - "y": "0", - "properties": { - "color": "10027263", - "icon": { - "ID": "check-circle", - "size": "small" - } - } - } - ] - } - } - }, - { - "ID": "2060", - "typeID": "__group__", - "zOrder": "186", - "measuredW": "197", - "measuredH": "40", - "w": "197", - "h": "40", - "x": "892", - "y": "3231", - "properties": { - "controlName": "100-scalability:mitigation-strategies:graceful-degradation" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", "typeID": "TextArea", - "zOrder": "0", - "w": "197", - "h": "40", + "zOrder": "3", + "w": "143", + "h": "43", "measuredW": "200", "measuredH": "140", - "x": "0", - "y": "0", + "x": "18", + "y": "61", "properties": { "color": "16770457" } }, { - "ID": "1", + "ID": "4", "typeID": "Label", - "zOrder": "1", - "measuredW": "166", + "zOrder": "4", + "measuredW": "88", "measuredH": "25", - "x": "17", - "y": "7", + "x": "43", + "y": "70", "properties": { "size": "17", - "text": "Graceful Degradation" - } - } - ] - } - } - }, - { - "ID": "2061", - "typeID": "__group__", - "zOrder": "187", - "measuredW": "197", - "measuredH": "40", - "w": "197", - "h": "40", - "x": "892", - "y": "3275", - "properties": { - "controlName": "101-scalability:mitigation-strategies:throttling" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "197", - "h": "40", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" + "text": "DynamoDB" } }, { - "ID": "1", + "ID": "5", "typeID": "Label", - "zOrder": "1", - "measuredW": "73", + "zOrder": "5", + "measuredW": "76", "measuredH": "25", - "x": "62", - "y": "7", + "x": "52", + "y": "114", "properties": { "size": "17", - "text": "Throttling" + "text": "Key-Value" + } + }, + { + "ID": "6", + "typeID": "__group__", + "zOrder": "6", + "measuredW": "24", + "measuredH": "24", + "w": "24", + "h": "24", + "x": "11", + "y": "21", + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Icon", + "zOrder": "0", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "1", + "typeID": "Icon", + "zOrder": "1", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "7", + "typeID": "__group__", + "zOrder": "7", + "measuredW": "24", + "measuredH": "24", + "w": "24", + "h": "24", + "x": "9", + "y": "70", + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Icon", + "zOrder": "0", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "1", + "typeID": "Icon", + "zOrder": "1", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "3700253", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } } } ] @@ -10243,93 +9484,48 @@ } }, { - "ID": "2062", + "ID": "2539", "typeID": "__group__", - "zOrder": "188", - "measuredW": "199", - "measuredH": "40", - "w": "199", - "h": "40", - "x": "892", - "y": "3319", - "properties": { - "controlName": "102-scalability:mitigation-strategies:backpressure" - }, + "zOrder": "159", + "measuredW": "24", + "measuredH": "24", + "w": "24", + "h": "24", + "x": "1802", + "y": "3036", "children": { "controls": { "control": [ { "ID": "0", - "typeID": "TextArea", + "typeID": "Icon", "zOrder": "0", - "w": "199", - "h": "40", - "measuredW": "200", - "measuredH": "140", + "measuredW": "24", + "measuredH": "24", "x": "0", "y": "0", "properties": { - "color": "16770457" + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } } }, { "ID": "1", - "typeID": "Label", + "typeID": "Icon", "zOrder": "1", - "measuredW": "107", - "measuredH": "25", - "x": "46", - "y": "7", - "properties": { - "size": "17", - "text": "Backpressure" - } - } - ] - } - } - }, - { - "ID": "2063", - "typeID": "__group__", - "zOrder": "189", - "measuredW": "199", - "measuredH": "40", - "w": "199", - "h": "40", - "x": "892", - "y": "3363", - "properties": { - "controlName": "103-scalability:mitigation-strategies:loadshifting" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "199", - "h": "40", - "measuredW": "200", - "measuredH": "140", + "measuredW": "24", + "measuredH": "24", "x": "0", "y": "0", "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "94", - "measuredH": "25", - "x": "53", - "y": "7", - "properties": { - "size": "17", - "text": "Loadshifting" + "color": "10066329", + "icon": { + "ID": "check-circle", + "size": "small" + } } } ] @@ -10337,46 +9533,48 @@ } }, { - "ID": "2064", + "ID": "2540", "typeID": "__group__", - "zOrder": "190", - "measuredW": "197", - "measuredH": "40", - "w": "197", - "h": "40", - "x": "892", - "y": "3407", - "properties": { - "controlName": "104-scalability:mitigation-strategies:circuit-breaker" - }, + "zOrder": "160", + "measuredW": "24", + "measuredH": "24", + "w": "24", + "h": "24", + "x": "1802", + "y": "3185", "children": { "controls": { "control": [ { "ID": "0", - "typeID": "TextArea", + "typeID": "Icon", "zOrder": "0", - "w": "197", - "h": "40", - "measuredW": "200", - "measuredH": "140", + "measuredW": "24", + "measuredH": "24", "x": "0", "y": "0", "properties": { - "color": "16770457" + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } } }, { "ID": "1", - "typeID": "Label", + "typeID": "Icon", "zOrder": "1", - "measuredW": "116", - "measuredH": "25", - "x": "41", - "y": "7", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", "properties": { - "size": "17", - "text": "Circuit Breaker" + "color": "10066329", + "icon": { + "ID": "check-circle", + "size": "small" + } } } ] @@ -10384,56 +9582,26 @@ } }, { - "ID": "2065", + "ID": "2541", "typeID": "__group__", - "zOrder": "191", - "measuredW": "215", - "measuredH": "40", - "w": "215", - "h": "40", - "x": "672", - "y": "2438", - "properties": { - "controlName": "105-more-about-databases:failure-modes" - }, + "zOrder": "161", + "measuredW": "24", + "measuredH": "24", + "w": "24", + "h": "24", + "x": "1466", + "y": "3185", "children": { "controls": { "control": [ { "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "206", - "h": "40", - "measuredW": "200", - "measuredH": "140", - "x": "9", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "110", - "measuredH": "25", - "x": "57", - "y": "7", - "properties": { - "size": "17", - "text": "Failure Modes" - } - }, - { - "ID": "2", "typeID": "Icon", - "zOrder": "2", + "zOrder": "0", "measuredW": "24", "measuredH": "24", "x": "0", - "y": "8", + "y": "0", "properties": { "color": "16777215", "icon": { @@ -10443,15 +9611,15 @@ } }, { - "ID": "3", + "ID": "1", "typeID": "Icon", - "zOrder": "3", + "zOrder": "1", "measuredW": "24", "measuredH": "24", "x": "0", - "y": "8", + "y": "0", "properties": { - "color": "10027263", + "color": "10066329", "icon": { "ID": "check-circle", "size": "small" @@ -10463,56 +9631,26 @@ } }, { - "ID": "2066", + "ID": "2542", "typeID": "__group__", - "zOrder": "192", - "measuredW": "215", - "measuredH": "40", - "w": "215", - "h": "40", - "x": "672", - "y": "2482", - "properties": { - "controlName": "106-more-about-databases:profiling-performance" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "206", - "h": "40", - "measuredW": "200", - "measuredH": "140", - "x": "9", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "166", - "measuredH": "25", - "x": "29", - "y": "7", - "properties": { - "size": "17", - "text": "Profiling Performance" - } - }, + "zOrder": "162", + "measuredW": "24", + "measuredH": "24", + "w": "24", + "h": "24", + "x": "1490", + "y": "2910", + "children": { + "controls": { + "control": [ { - "ID": "2", + "ID": "0", "typeID": "Icon", - "zOrder": "2", + "zOrder": "0", "measuredW": "24", "measuredH": "24", "x": "0", - "y": "8", + "y": "0", "properties": { "color": "16777215", "icon": { @@ -10522,19 +9660,19 @@ } }, { - "ID": "3", + "ID": "1", "typeID": "Icon", - "zOrder": "3", + "zOrder": "1", "measuredW": "24", "measuredH": "24", "x": "0", - "y": "8", + "y": "0", "properties": { - "color": "10027263", "icon": { "ID": "check-circle", "size": "small" - } + }, + "color": "10066329" } } ] @@ -10542,124 +9680,48 @@ } }, { - "ID": "2067", + "ID": "2543", "typeID": "__group__", - "zOrder": "3", - "measuredW": "211", - "measuredH": "196", - "w": "211", - "h": "196", - "x": "671", - "y": "3298", - "properties": { - "controlName": "101-scalability:instrumentation-monitoring-telemetry" - }, + "zOrder": "163", + "measuredW": "24", + "measuredH": "24", + "w": "24", + "h": "24", + "x": "1466", + "y": "2910", "children": { "controls": { "control": [ { "ID": "0", - "typeID": "TextArea", + "typeID": "Icon", "zOrder": "0", - "w": "211", - "h": "196", - "measuredW": "200", - "measuredH": "140", + "measuredW": "24", + "measuredH": "24", "x": "0", - "y": "0" - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "151", - "measuredH": "25", - "x": "29", - "y": "156", - "properties": { - "size": "17", - "text": "Difference + Usage" - } - }, - { - "ID": "4", - "typeID": "TextArea", - "zOrder": "2", - "w": "187", - "h": "40", - "measuredW": "200", - "measuredH": "140", - "x": "11", - "y": "15", - "properties": { - "color": "16770457" - } - }, - { - "ID": "5", - "typeID": "Label", - "zOrder": "3", - "measuredW": "121", - "measuredH": "25", - "x": "44", - "y": "22", - "properties": { - "size": "17", - "text": "Instrumentation" - } - }, - { - "ID": "6", - "typeID": "TextArea", - "zOrder": "4", - "w": "187", - "h": "40", - "measuredW": "200", - "measuredH": "140", - "x": "11", - "y": "60", - "properties": { - "color": "16770457" - } - }, - { - "ID": "7", - "typeID": "Label", - "zOrder": "5", - "measuredW": "83", - "measuredH": "25", - "x": "63", - "y": "67", - "properties": { - "size": "17", - "text": "Monitoring" - } - }, - { - "ID": "8", - "typeID": "TextArea", - "zOrder": "6", - "w": "187", - "h": "40", - "measuredW": "200", - "measuredH": "140", - "x": "11", - "y": "105", + "y": "0", "properties": { - "color": "16770457" + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } } }, { - "ID": "9", - "typeID": "Label", - "zOrder": "7", - "measuredW": "76", - "measuredH": "25", - "x": "67", - "y": "112", + "ID": "1", + "typeID": "Icon", + "zOrder": "1", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", "properties": { - "size": "17", - "text": "Telemetry" + "icon": { + "ID": "check-circle", + "size": "small" + }, + "color": "10027263" } } ] @@ -10667,41 +9729,17 @@ } }, { - "ID": "2068", - "typeID": "TextArea", - "zOrder": "193", - "w": "337", - "h": "124", - "measuredW": "200", - "measuredH": "140", - "x": "1133", - "y": "3683" - }, - { - "ID": "2069", - "typeID": "Label", - "zOrder": "194", - "measuredW": "285", - "measuredH": "25", - "x": "1154", - "y": "3703", - "properties": { - "size": "17", - "text": "Have a look at the DevOps Roadmap" - } - }, - { - "ID": "2070", + "ID": "2544", "typeID": "__group__", - "zOrder": "195", - "measuredW": "292", - "measuredH": "44", - "w": "292", - "h": "44", - "x": "1154", - "y": "3738", + "zOrder": "164", + "measuredW": "211", + "measuredH": "50", + "w": "211", + "h": "50", + "x": "679", + "y": "2008", "properties": { - "controlName": "ext_link:roadmap.sh/devops" + "controlName": "109-scaling-databases" }, "children": { "controls": { @@ -10710,27 +9748,27 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "292", - "h": "44", + "w": "211", + "h": "50", "measuredW": "200", "measuredH": "140", "x": "0", "y": "0", "properties": { - "color": "16770457" + "color": "16776960" } }, { "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "141", + "measuredW": "144", "measuredH": "25", - "x": "75", - "y": "9", + "x": "34", + "y": "12", "properties": { "size": "17", - "text": "DevOps Roadmap" + "text": "Scaling Databases" } } ] @@ -10738,17 +9776,17 @@ } }, { - "ID": "2071", + "ID": "2545", "typeID": "__group__", - "zOrder": "196", - "measuredW": "148", - "measuredH": "44", - "w": "148", - "h": "44", - "x": "1661", - "y": "1987", + "zOrder": "165", + "measuredW": "153", + "measuredH": "40", + "w": "153", + "h": "40", + "x": "672", + "y": "1742", "properties": { - "controlName": "106-web-security-knowledge:server-security" + "controlName": "106-apis:graphql" }, "children": { "controls": { @@ -10757,11 +9795,11 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "148", - "h": "44", + "w": "146", + "h": "40", "measuredW": "200", "measuredH": "140", - "x": "0", + "x": "7", "y": "0", "properties": { "color": "16770457" @@ -10771,13 +9809,46 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "117", + "measuredW": "71", "measuredH": "25", - "x": "15", - "y": "10", + "x": "44", + "y": "7", + "properties": { + "align": "center", + "size": "17", + "text": "GraphQL" + } + }, + { + "ID": "4", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "5", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", "properties": { - "size": "17", - "text": "Server Security" + "color": "10066329", + "icon": { + "ID": "check-circle", + "size": "small" + } } } ] @@ -10785,29 +9856,29 @@ } }, { - "ID": "2072", + "ID": "2546", "typeID": "__group__", - "zOrder": "197", - "measuredW": "242", - "measuredH": "47", - "w": "242", - "h": "47", - "x": "1568", - "y": "2039", + "zOrder": "166", + "measuredW": "144", + "measuredH": "40", + "w": "144", + "h": "40", + "x": "1673", + "y": "2653", "properties": { - "controlName": "ext_link:roadmap.sh/best-practices/api-security" + "controlName": "ext_link:roadmap.sh/kubernetes" }, "children": { "controls": { "control": [ { "ID": "0", - "typeID": "Canvas", + "typeID": "TextArea", "zOrder": "0", - "w": "242", - "h": "47", - "measuredW": "100", - "measuredH": "70", + "w": "144", + "h": "40", + "measuredW": "200", + "measuredH": "140", "x": "0", "y": "0", "properties": { @@ -10819,580 +9890,690 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "208", - "measuredH": "25", - "x": "17", - "y": "11", - "properties": { - "size": "17", - "color": "16777215", - "text": "API Security Best Practices" - } - } - ] - } - } - }, - { - "ID": "2085", - "typeID": "Arrow", - "zOrder": "0", - "w": "1", - "h": "101", - "measuredW": "150", - "measuredH": "100", - "x": "1254", - "y": "846", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": 0.08262228161265739, - "y": -0.00765522788196904 - }, - "p1": { - "x": 0.4673783006670675, - "y": -0.003606051439574666 - }, - "p2": { - "x": 0.08262228161265739, - "y": 100.83103671353786 - } - } - }, - { - "ID": "2086", - "typeID": "Arrow", - "zOrder": "54", - "w": "173", - "h": "89", - "measuredW": "150", - "measuredH": "100", - "x": "1344", - "y": "965", - "properties": { - "color": "2848996", - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 172.29875220380154, - "y": 88.53446090344232 - }, - "p1": { - "x": 0.5173830120100056, - "y": -0.10475991954824762 - }, - "p2": { - "x": -0.4820084590012357, - "y": -0.42298043210348624 - } - } - }, - { - "ID": "2087", - "typeID": "Arrow", - "zOrder": "53", - "w": "189", - "h": "129", - "measuredW": "150", - "measuredH": "100", - "x": "1329", - "y": "971", - "properties": { - "color": "2848996", - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 189.29875220380154, - "y": 129.53446090344232 - }, - "p1": { - "x": 0.5173830120100052, - "y": -0.10475991954824745 - }, - "p2": { - "x": -0.0566612271975373, - "y": 0.20186173525848972 - } - } - }, - { - "ID": "2088", - "typeID": "Arrow", - "zOrder": "52", - "w": "257", - "h": "1", - "measuredW": "150", - "measuredH": "100", - "x": "909", - "y": "952", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": 0.2658611453201729, - "y": 0.452028801972574 - }, - "p1": { - "x": 0.47345427259831346, - "y": -0.00011162392477927633 - }, - "p2": { - "x": 257.72987682295434, - "y": 0.452028801972574 - } - } - }, - { - "ID": "2089", - "typeID": "Arrow", - "zOrder": "51", - "w": "1", - "h": "99", - "measuredW": "150", - "measuredH": "100", - "x": "909", - "y": "954", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": 0.08262228161265739, - "y": -0.00765522788196904 - }, - "p1": { - "x": 0.46737830066706765, - "y": -0.0036060514395746665 - }, - "p2": { - "x": 0.08262228161265739, - "y": 99.34990461054645 - } - } - }, - { - "ID": "2090", - "typeID": "Arrow", - "zOrder": "50", - "w": "140", - "h": "251", - "measuredW": "150", - "measuredH": "100", - "x": "1202", - "y": "1058", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": 1.733821809662004, - "y": -0.012705872300330157 - }, - "p1": { - "x": 0.6281690675432272, - "y": -0.24735053069351437 - }, - "p2": { - "x": 139.53053889079024, - "y": 250.4063280539806 - } - } - }, - { - "ID": "2091", - "typeID": "Arrow", - "zOrder": "49", - "w": "107", - "h": "1", - "measuredW": "150", - "measuredH": "100", - "x": "846", - "y": "1321", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": 0, - "y": -0.5 - }, - "p1": { - "x": 0.4734542725983134, - "y": -0.00011162392477927755 - }, - "p2": { - "x": 107.31478788338131, - "y": -0.5 - }, - "stroke": "dotted" + "measuredW": "90", + "measuredH": "25", + "x": "27", + "y": "7", + "properties": { + "size": "17", + "text": "Kubernetes", + "color": "16777215" + } + } + ] + } } }, { - "ID": "2092", - "typeID": "Arrow", - "zOrder": "48", - "w": "97", - "h": "40", - "measuredW": "150", - "measuredH": "100", - "x": "859", - "y": "1335", + "ID": "2547", + "typeID": "__group__", + "zOrder": "167", + "measuredW": "169", + "measuredH": "102", + "w": "169", + "h": "102", + "x": "1646", + "y": "3222", "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 0.24202910684186918, - "y": 39.70493912676557 - }, - "p1": { - "x": 0.41485764854624113, - "y": 0.109423049141837 - }, - "p2": { - "x": 96.96472475032601, - "y": -0.044113877406061874 + "controlName": "120-graph-databases" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "169", + "h": "102", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0" + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "85", + "measuredH": "25", + "x": "42", + "y": "64", + "properties": { + "size": "17", + "text": "Graph DBs" + } + }, + { + "ID": "2", + "typeID": "TextArea", + "zOrder": "2", + "w": "143", + "h": "43", + "measuredW": "200", + "measuredH": "140", + "x": "14", + "y": "15", + "properties": { + "color": "16770457" + } + }, + { + "ID": "3", + "typeID": "Label", + "zOrder": "3", + "measuredW": "47", + "measuredH": "25", + "x": "62", + "y": "24", + "properties": { + "size": "17", + "text": "Neo4j" + } + }, + { + "ID": "4", + "typeID": "__group__", + "zOrder": "4", + "measuredW": "24", + "measuredH": "24", + "w": "24", + "h": "24", + "x": "5", + "y": "24", + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Icon", + "zOrder": "0", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "1", + "typeID": "Icon", + "zOrder": "1", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "3700253", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + } + ] } } }, { - "ID": "2093", - "typeID": "Arrow", - "zOrder": "47", - "w": "115", - "h": "81", - "measuredW": "150", - "measuredH": "100", - "x": "863", - "y": "1344", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 0.216934407259032, - "y": 81.05373959871622 - }, - "p1": { - "x": 0.44045282407886405, - "y": 0.13711042381893543 - }, - "p2": { - "x": 115.48918811935664, - "y": 0.2306651569006135 - } - } + "ID": "2548", + "typeID": "TextArea", + "zOrder": "168", + "w": "271", + "h": "224", + "measuredW": "200", + "measuredH": "140", + "x": "1551", + "y": "1874" }, { - "ID": "2094", - "typeID": "Arrow", - "zOrder": "46", - "w": "151", - "h": "125", - "measuredW": "150", - "measuredH": "100", - "x": "862", - "y": "1340", + "ID": "2549", + "typeID": "__group__", + "zOrder": "169", + "measuredW": "86", + "measuredH": "42", + "w": "86", + "h": "42", + "x": "1567", + "y": "1938", "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": -0.1080340262133177, - "y": 124.80279260288762 - }, - "p1": { - "x": 0.4785842736801959, - "y": 0.11879950919024476 - }, - "p2": { - "x": 150.93836738963864, - "y": 0.25575985648356436 + "controlName": "106-web-security-knowledge:cors" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "86", + "h": "42", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "48", + "measuredH": "25", + "x": "25", + "y": "9", + "properties": { + "text": "CORS", + "size": "17" + } + } + ] } } }, { - "ID": "2095", - "typeID": "Arrow", - "zOrder": "45", - "w": "166", - "h": "168", - "measuredW": "150", - "measuredH": "100", - "x": "859", - "y": "1342", + "ID": "2550", + "typeID": "__group__", + "zOrder": "170", + "measuredW": "90", + "measuredH": "43", + "w": "90", + "h": "43", + "x": "1565", + "y": "1888", "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 0.24202910684186918, - "y": 167.85171934094888 - }, - "p1": { - "x": 0.5187506526383378, - "y": 0.10092669429158865 - }, - "p2": { - "x": 165.86308329089002, - "y": -0.4192717100440859 + "controlName": "105-web-security-knowledge:https" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "90", + "h": "43", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "54", + "measuredH": "25", + "x": "21", + "y": "10", + "properties": { + "text": "HTTPS", + "size": "17" + } + } + ] } } }, { - "ID": "2097", - "typeID": "Arrow", - "zOrder": "44", - "w": "236", - "h": "1", - "measuredW": "150", - "measuredH": "100", - "x": "1135", - "y": "1323", + "ID": "2551", + "typeID": "__group__", + "zOrder": "171", + "measuredW": "87", + "measuredH": "44", + "w": "87", + "h": "44", + "x": "1568", + "y": "1988", "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": 0, - "y": 0.5 - }, - "p1": { - "x": 0.47345427259831335, - "y": -0.00011162392477927807 - }, - "p2": { - "x": 235.68489507160098, - "y": -0.32512695598120445 + "controlName": "105-web-security-knowledge:content-security-policy" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "87", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "34", + "measuredH": "25", + "x": "27", + "y": "10", + "properties": { + "size": "17", + "text": "CSP" + } + } + ] } } }, { - "ID": "2098", - "typeID": "Arrow", - "zOrder": "43", - "w": "1", - "h": "239", - "measuredW": "150", - "measuredH": "100", - "x": "1059", - "y": "1336", + "ID": "2552", + "typeID": "__group__", + "zOrder": "172", + "measuredW": "147", + "measuredH": "43", + "w": "147", + "h": "43", + "x": "1660", + "y": "1888", "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": 0, - "y": -0.5 - }, - "p1": { - "x": 0.47345427259831346, - "y": -0.00011162392477927806 - }, - "p2": { - "x": 0, - "y": 238.3367674309227 + "controlName": "108-web-security-knowledge:owasp" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "147", + "h": "43", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "104", + "measuredH": "25", + "x": "22", + "y": "10", + "properties": { + "size": "17", + "text": "OWASP Risks" + } + } + ] } } }, { - "ID": "2099", - "typeID": "Arrow", - "zOrder": "42", - "w": "176", - "h": "1", - "measuredW": "150", - "measuredH": "100", - "x": "804", - "y": "1577", + "ID": "2553", + "typeID": "__group__", + "zOrder": "173", + "measuredW": "149", + "measuredH": "43", + "w": "149", + "h": "43", + "x": "1659", + "y": "1938", "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 0, - "y": 1.5 - }, - "p1": { - "x": 0.47345427259831363, - "y": -0.00011162392477927848 - }, - "p2": { - "x": 176.21279569788953, - "y": 0.03075605110257129 + "controlName": "107-web-security-knowledge:ssl-tls" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "149", + "h": "43", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "69", + "measuredH": "25", + "x": "40", + "y": "9", + "properties": { + "text": "SSL/TLS", + "size": "17" + } + } + ] } } }, { - "ID": "2100", - "typeID": "Arrow", - "zOrder": "41", + "ID": "2554", + "typeID": "__group__", + "zOrder": "174", + "measuredW": "271", + "measuredH": "40", + "w": "271", "h": "40", - "measuredW": "150", - "measuredH": "100", - "x": "817", - "y": "1591", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 0.3152579854152009, - "y": 39.90867964120662 - }, - "p1": { - "x": 0.4665558798140599, - "y": 0.0702975125629915 - }, - "p2": { - "x": 150.67744570222203, - "y": -0.2871527187319316 - } - } - }, - { - "ID": "2101", - "typeID": "Arrow", - "zOrder": "40", - "w": "186", - "h": "82", - "measuredW": "150", - "measuredH": "100", - "x": "808", - "y": "1591", + "x": "1561", + "y": "2340", "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 0, - "y": 81.5 - }, - "p1": { - "x": 0.4667037938257157, - "y": 0.05826324141902692 - }, - "p2": { - "x": 186.47466727551432, - "y": -0.2871527187319316 + "controlName": "103-design-and-development-principles:cqrs" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "260", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "48", + "measuredH": "25", + "x": "106", + "y": "7", + "properties": { + "size": "17", + "text": "CQRS" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "247", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "247", + "y": "8", + "properties": { + "icon": { + "ID": "check-circle", + "size": "small" + }, + "color": "10027263" + } + } + ] } } }, { - "ID": "2102", - "typeID": "Arrow", - "zOrder": "39", - "w": "183", - "h": "125", - "measuredW": "150", - "measuredH": "100", - "x": "811", - "y": "1594", + "ID": "2555", + "typeID": "__group__", + "zOrder": "175", + "measuredW": "270", + "measuredH": "40", + "w": "270", + "h": "40", + "x": "1561", + "y": "2384", "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 0.36031985801696464, - "y": 124.74401702033128 - }, - "p1": { - "x": 0.47415070546175875, - "y": 0.06172844723948579 - }, - "p2": { - "x": 183.47466727551432, - "y": -0.3096836550328135 + "controlName": "104-design-and-development-principles:event-sourcing" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "260", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "116", + "measuredH": "25", + "x": "72", + "y": "7", + "properties": { + "size": "17", + "text": "Event Sourcing" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "246", + "y": "7", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "246", + "y": "7", + "properties": { + "icon": { + "ID": "check-circle", + "size": "small" + }, + "color": "10027263" + } + } + ] } } }, { - "ID": "2103", - "typeID": "Arrow", - "zOrder": "38", - "w": "214", - "h": "180", - "measuredW": "150", - "measuredH": "100", - "x": "816", - "y": "1586", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": -0.17347654643435817, - "y": 180.38352203951763 - }, - "p1": { - "x": 0.4387031121915371, - "y": 0.07581196822794485 - }, - "p2": { - "x": 214.2042960399042, - "y": 0.24664368571939121 + "ID": "2556", + "typeID": "__group__", + "zOrder": "176", + "measuredW": "211", + "measuredH": "37", + "w": "211", + "h": "37", + "x": "1006", + "y": "2708", + "properties": { + "controlName": "105-architectural-patterns:service-mesh" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "202", + "h": "37", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "105", + "measuredH": "25", + "x": "48", + "y": "6", + "properties": { + "size": "17", + "text": "Service Mesh" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "187", + "y": "7", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "187", + "y": "7", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] } } }, { - "ID": "2105", + "ID": "2557", "typeID": "__group__", - "zOrder": "198", - "measuredW": "179", - "measuredH": "40", - "w": "179", - "h": "40", - "x": "975", - "y": "1729", + "zOrder": "177", + "measuredW": "211", + "measuredH": "37", + "w": "211", + "h": "37", + "x": "1006", + "y": "2748", "properties": { - "controlName": "102-apis:authentication:basic-authentication" + "controlName": "106-architectural-patterns:twelve-factor-apps" }, "children": { "controls": { "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "202", + "h": "37", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, { "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "149", + "measuredH": "25", + "x": "26", + "y": "6", + "properties": { + "size": "17", + "text": "Twelve Factor Apps" + } + }, + { + "ID": "2", "typeID": "Icon", "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "0", - "y": "8", + "x": "187", + "y": "7", "properties": { "color": "16777215", "icon": { @@ -11402,13 +10583,13 @@ } }, { - "ID": "2", + "ID": "3", "typeID": "Icon", "zOrder": "3", "measuredW": "24", "measuredH": "24", - "x": "0", - "y": "8", + "x": "187", + "y": "7", "properties": { "color": "10027263", "icon": { @@ -11416,32 +10597,130 @@ "size": "small" } } + } + ] + } + } + }, + { + "ID": "2558", + "typeID": "__group__", + "zOrder": "178", + "measuredW": "198", + "measuredH": "159", + "w": "198", + "h": "159", + "x": "1424", + "y": "2674", + "properties": { + "controlName": "116-search-engines" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "198", + "h": "159", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0" }, { - "ID": "3", - "typeID": "Canvas", + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "126", + "measuredW": "122", + "measuredH": "25", + "x": "36", + "y": "116", + "properties": { + "size": "17", + "text": "Search Engines" + } + } + ] + } + } + }, + { + "ID": "2559", + "typeID": "__group__", + "zOrder": "179", + "measuredW": "167", + "measuredH": "40", + "w": "167", + "h": "40", + "x": "1439", + "y": "2691", + "properties": { + "controlName": "100-search-engines:elasticsearch" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", "zOrder": "0", - "w": "169", + "w": "160", "h": "40", - "measuredW": "100", - "measuredH": "70", - "x": "10", + "measuredW": "200", + "measuredH": "140", + "x": "7", "y": "0", "properties": { "color": "16770457" } }, { - "ID": "4", + "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "82", + "w": "106", + "measuredW": "104", "measuredH": "25", - "x": "54", - "y": "7", + "x": "39", + "y": "8", "properties": { "size": "17", - "text": "Basic Auth" + "text": "Elasticsearch" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "7", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "7", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } } } ] @@ -11449,23 +10728,51 @@ } }, { - "ID": "2106", + "ID": "2560", "typeID": "__group__", - "zOrder": "199", - "measuredW": "179", + "zOrder": "180", + "measuredW": "167", "measuredH": "40", - "w": "179", + "w": "167", "h": "40", - "x": "975", - "y": "1766", + "x": "1439", + "y": "2737", "properties": { - "controlName": "103-apis:authentication:token-authentication" + "controlName": "101-search-engines:solr" }, "children": { "controls": { "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "160", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "7", + "y": "0", + "properties": { + "color": "16770457" + } + }, { "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "36", + "measuredW": "30", + "measuredH": "25", + "x": "69", + "y": "8", + "properties": { + "size": "17", + "text": "Solr" + } + }, + { + "ID": "2", "typeID": "Icon", "zOrder": "2", "measuredW": "24", @@ -11481,7 +10788,7 @@ } }, { - "ID": "2", + "ID": "3", "typeID": "Icon", "zOrder": "3", "measuredW": "24", @@ -11489,68 +10796,68 @@ "x": "0", "y": "8", "properties": { - "color": "10027263", + "color": "3700253", "icon": { "ID": "check-circle", "size": "small" } } - }, + } + ] + } + } + }, + { + "ID": "2561", + "typeID": "__group__", + "zOrder": "181", + "measuredW": "191", + "measuredH": "40", + "w": "191", + "h": "40", + "x": "1275", + "y": "2540", + "properties": { + "controlName": "100-message-brokers:rabbitmq" + }, + "children": { + "controls": { + "control": [ { - "ID": "3", - "typeID": "Canvas", + "ID": "0", + "typeID": "TextArea", "zOrder": "0", - "w": "169", + "w": "182", "h": "40", - "measuredW": "100", - "measuredH": "70", - "x": "10", + "measuredW": "200", + "measuredH": "140", + "x": "9", "y": "0", "properties": { "color": "16770457" } }, { - "ID": "4", + "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "85", + "measuredW": "78", "measuredH": "25", - "x": "52", + "x": "61", "y": "7", "properties": { "size": "17", - "text": "Token Auth" + "text": "RabbitMQ" } - } - ] - } - } - }, - { - "ID": "2107", - "typeID": "__group__", - "zOrder": "200", - "measuredW": "179", - "measuredH": "40", - "w": "179", - "h": "40", - "x": "975", - "y": "1803", - "properties": { - "controlName": "101-apis:authentication:oauth" - }, - "children": { - "controls": { - "control": [ + }, { - "ID": "1", + "ID": "2", "typeID": "Icon", "zOrder": "2", "measuredW": "24", "measuredH": "24", "x": "0", - "y": "8", + "y": "7", "properties": { "color": "16777215", "icon": { @@ -11560,13 +10867,13 @@ } }, { - "ID": "2", + "ID": "3", "typeID": "Icon", "zOrder": "3", "measuredW": "24", "measuredH": "24", "x": "0", - "y": "8", + "y": "7", "properties": { "color": "10027263", "icon": { @@ -11574,62 +10881,35 @@ "size": "small" } } - }, - { - "ID": "3", - "typeID": "Canvas", - "zOrder": "0", - "w": "169", - "h": "40", - "measuredW": "100", - "measuredH": "70", - "x": "10", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "4", - "typeID": "Label", - "zOrder": "1", - "measuredW": "47", - "measuredH": "25", - "x": "71", - "y": "7", - "properties": { - "size": "17", - "text": "OAuth" - } } ] } } }, { - "ID": "2108", + "ID": "2562", "typeID": "__group__", - "zOrder": "201", - "measuredW": "178", + "zOrder": "182", + "measuredW": "192", "measuredH": "40", - "w": "178", + "w": "192", "h": "40", - "x": "976", - "y": "1840", + "x": "1275", + "y": "2584", "properties": { - "controlName": "100-apis:authentication:cookie-based" + "controlName": "101-message-brokers:kafka" }, "children": { "controls": { "control": [ { - "ID": "3", - "typeID": "Canvas", + "ID": "0", + "typeID": "TextArea", "zOrder": "0", - "w": "169", + "w": "183", "h": "40", - "measuredW": "100", - "measuredH": "70", + "measuredW": "200", + "measuredH": "140", "x": "9", "y": "0", "properties": { @@ -11637,26 +10917,26 @@ } }, { - "ID": "4", + "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "108", + "measuredW": "44", "measuredH": "25", - "x": "40", + "x": "79", "y": "7", "properties": { "size": "17", - "text": "Cookie Based" + "text": "Kafka" } }, { - "ID": "5", + "ID": "2", "typeID": "Icon", "zOrder": "2", "measuredW": "24", "measuredH": "24", "x": "0", - "y": "8", + "y": "7", "properties": { "color": "16777215", "icon": { @@ -11666,19 +10946,113 @@ } }, { - "ID": "6", + "ID": "3", "typeID": "Icon", "zOrder": "3", "measuredW": "24", "measuredH": "24", "x": "0", - "y": "8", + "y": "7", + "properties": { + "icon": { + "ID": "check-circle", + "size": "small" + }, + "color": "3700253" + } + } + ] + } + } + }, + { + "ID": "2563", + "typeID": "__group__", + "zOrder": "183", + "measuredW": "201", + "measuredH": "50", + "w": "201", + "h": "50", + "x": "674", + "y": "2973", + "properties": { + "controlName": "122-server-sent-events" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "201", + "h": "50", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "148", + "measuredH": "25", + "x": "27", + "y": "12", + "properties": { + "size": "17", + "text": "Server Sent Events" + } + } + ] + } + } + }, + { + "ID": "2564", + "typeID": "__group__", + "zOrder": "184", + "measuredW": "213", + "measuredH": "50", + "w": "213", + "h": "50", + "x": "1188", + "y": "3224", + "properties": { + "controlName": "123-scalability" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "213", + "h": "50", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "134", + "measuredH": "25", + "x": "40", + "y": "13", "properties": { - "icon": { - "ID": "check-circle", - "size": "small" - }, - "color": "10027263" + "size": "17", + "text": "Building for Scale" } } ] @@ -11686,56 +11060,53 @@ } }, { - "ID": "2109", + "ID": "2565", "typeID": "__group__", - "zOrder": "202", - "measuredW": "179", - "measuredH": "40", - "w": "179", - "h": "40", - "x": "975", - "y": "1877", + "zOrder": "185", + "measuredW": "232", + "measuredH": "282", + "w": "232", + "h": "282", + "x": "880", + "y": "3212", "properties": { - "controlName": "105-apis:authentication:openid" + "controlName": "100-scalability:mitigation-strategies" }, "children": { "controls": { "control": [ { - "ID": "3", - "typeID": "Canvas", + "ID": "0", + "typeID": "TextArea", "zOrder": "0", - "w": "169", - "h": "40", - "measuredW": "100", - "measuredH": "70", - "x": "10", - "y": "0", - "properties": { - "color": "16770457" - } + "w": "222", + "h": "274", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "8" }, { - "ID": "4", + "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "61", + "measuredW": "159", "measuredH": "25", - "x": "64", - "y": "7", + "x": "31", + "y": "246", "properties": { "size": "17", - "text": "OpenID" + "text": "Mitigation Strategies" } }, { - "ID": "7", + "ID": "2", "typeID": "Icon", "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "0", - "y": "8", + "x": "208", + "y": "0", "properties": { "color": "16777215", "icon": { @@ -11745,15 +11116,15 @@ } }, { - "ID": "8", + "ID": "3", "typeID": "Icon", "zOrder": "3", "measuredW": "24", "measuredH": "24", - "x": "0", - "y": "8", + "x": "208", + "y": "0", "properties": { - "color": "10066329", + "color": "10027263", "icon": { "ID": "check-circle", "size": "small" @@ -11765,686 +11136,1049 @@ } }, { - "ID": "2110", + "ID": "2566", "typeID": "__group__", - "zOrder": "203", - "measuredW": "179", + "zOrder": "186", + "measuredW": "197", "measuredH": "40", - "w": "179", + "w": "197", "h": "40", - "x": "975", - "y": "1913", + "x": "892", + "y": "3231", "properties": { - "controlName": "105-apis:authentication:saml" + "controlName": "100-scalability:mitigation-strategies:graceful-degradation" }, "children": { "controls": { "control": [ { - "ID": "3", - "typeID": "Canvas", + "ID": "0", + "typeID": "TextArea", "zOrder": "0", - "w": "169", + "w": "197", "h": "40", - "measuredW": "100", - "measuredH": "70", - "x": "10", + "measuredW": "200", + "measuredH": "140", + "x": "0", "y": "0", "properties": { "color": "16770457" } }, { - "ID": "4", + "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "46", - "measuredH": "25", - "x": "72", - "y": "7", - "properties": { - "size": "17", - "text": "SAML" - } - }, - { - "ID": "7", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "8", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "8", - "typeID": "Icon", - "zOrder": "3", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "8", - "properties": { - "color": "10066329", - "icon": { - "ID": "check-circle", - "size": "small" - } - } - } - ] - } - } - }, - { - "ID": "2111", - "typeID": "Arrow", - "zOrder": "37", - "w": "1", - "h": "129", - "measuredW": "150", - "measuredH": "100", - "x": "1058", - "y": "1587", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 0.21279569788953268, - "y": 129.33087955966835 - }, - "p1": { - "x": 0.4734542725983137, - "y": -0.00011162392477927875 - }, - "p2": { - "x": 0.21279569788953268, - "y": 0.03075605110257129 - } - } - }, - { - "ID": "2112", - "typeID": "Arrow", - "zOrder": "36", - "w": "1", - "h": "108", - "measuredW": "150", - "measuredH": "100", - "x": "1120", - "y": "1464", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 0.21279569788953268, - "y": 107.33087955966835 - }, - "p1": { - "x": 0.47345427259831363, - "y": -0.00011162392477927894 - }, - "p2": { - "x": 0.21279569788953268, - "y": -0.3596558928045397 - } - } - }, - { - "ID": "2113", - "typeID": "Arrow", - "zOrder": "35", - "w": "267", - "h": "1", - "measuredW": "150", - "measuredH": "100", - "x": "1137", - "y": "1579", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": 0, - "y": -0.5 - }, - "p1": { - "x": 0.4734542725983135, - "y": -0.00011162392477927736 - }, - "p2": { - "x": 267.29850098875386, - "y": -0.5 - } - } - }, - { - "ID": "2114", - "typeID": "Arrow", - "zOrder": "34", - "w": "1", - "h": "93", - "measuredW": "150", - "measuredH": "100", - "x": "1391", - "y": "1486", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 1.2127956978895327, - "y": 93.40095678414946 - }, - "p1": { - "x": 0.47345427259831346, - "y": -0.00011162392477928008 - }, - "p2": { - "x": 0.14952920007272041, - "y": 0.38258659839470965 + "measuredW": "166", + "measuredH": "25", + "x": "17", + "y": "7", + "properties": { + "size": "17", + "text": "Graceful Degradation" + } + } + ] } } }, { - "ID": "2115", - "typeID": "Arrow", - "zOrder": "33", - "w": "1", - "h": "211", - "measuredW": "150", - "measuredH": "100", - "x": "1391", - "y": "1566", + "ID": "2567", + "typeID": "__group__", + "zOrder": "187", + "measuredW": "197", + "measuredH": "40", + "w": "197", + "h": "40", + "x": "892", + "y": "3275", "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": 0, - "y": -0.5 - }, - "p1": { - "x": 0.47345427259831363, - "y": -0.00011162392477927808 - }, - "p2": { - "x": 0, - "y": 210.88680138292193 + "controlName": "101-scalability:mitigation-strategies:throttling" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "197", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "73", + "measuredH": "25", + "x": "62", + "y": "7", + "properties": { + "size": "17", + "text": "Throttling" + } + } + ] } } }, { - "ID": "2116", - "typeID": "Arrow", - "zOrder": "32", - "w": "223", - "h": "1", - "measuredW": "150", - "measuredH": "100", - "x": "1391", - "y": "1780", + "ID": "2568", + "typeID": "__group__", + "zOrder": "188", + "measuredW": "199", + "measuredH": "40", + "w": "199", + "h": "40", + "x": "892", + "y": "3319", "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": 0, - "y": -0.5 - }, - "p1": { - "x": 0.4734542725983135, - "y": -0.00011162392477927705 - }, - "p2": { - "x": 223.3987853999388, - "y": -0.5 + "controlName": "102-scalability:mitigation-strategies:backpressure" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "199", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "107", + "measuredH": "25", + "x": "46", + "y": "7", + "properties": { + "size": "17", + "text": "Backpressure" + } + } + ] } } }, { - "ID": "2117", - "typeID": "Arrow", - "zOrder": "31", - "w": "1", - "h": "206", - "measuredW": "150", - "measuredH": "100", - "x": "1688", - "y": "1690", + "ID": "2569", + "typeID": "__group__", + "zOrder": "189", + "measuredW": "199", + "measuredH": "40", + "w": "199", + "h": "40", + "x": "892", + "y": "3363", "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 0.14952920007272041, - "y": 206.75343217305021 - }, - "p1": { - "x": 0.4734542725983135, - "y": -0.00011162392477928018 - }, - "p2": { - "x": 0.14952920007272041, - "y": 0.38258659839470965 + "controlName": "103-scalability:mitigation-strategies:loadshifting" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "199", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "94", + "measuredH": "25", + "x": "53", + "y": "7", + "properties": { + "size": "17", + "text": "Loadshifting" + } + } + ] } } }, { - "ID": "2118", - "typeID": "Arrow", - "zOrder": "30", - "w": "223", - "h": "1", - "measuredW": "150", - "measuredH": "100", - "x": "1391", - "y": "1798", + "ID": "2570", + "typeID": "__group__", + "zOrder": "190", + "measuredW": "197", + "measuredH": "40", + "w": "197", + "h": "40", + "x": "892", + "y": "3407", "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": 0, - "y": -0.5 - }, - "p1": { - "x": 0.4734542725983135, - "y": -0.00011162392477927705 - }, - "p2": { - "x": 223.3987853999388, - "y": -0.5 + "controlName": "104-scalability:mitigation-strategies:circuit-breaker" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "197", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "116", + "measuredH": "25", + "x": "41", + "y": "7", + "properties": { + "size": "17", + "text": "Circuit Breaker" + } + } + ] } } }, { - "ID": "2119", - "typeID": "Arrow", - "zOrder": "204", - "w": "1", - "h": "211", - "measuredW": "150", - "measuredH": "100", - "x": "1391", - "y": "1801", + "ID": "2571", + "typeID": "__group__", + "zOrder": "191", + "measuredW": "215", + "measuredH": "40", + "w": "215", + "h": "40", + "x": "672", + "y": "2438", "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": 0, - "y": -0.5 - }, - "p1": { - "x": 0.47345427259831363, - "y": -0.00011162392477927808 - }, - "p2": { - "x": 0, - "y": 210.88680138292193 + "controlName": "105-more-about-databases:failure-modes" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "206", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "9", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "110", + "measuredH": "25", + "x": "57", + "y": "7", + "properties": { + "size": "17", + "text": "Failure Modes" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] } } }, { - "ID": "2120", - "typeID": "Arrow", - "zOrder": "29", - "w": "1", - "h": "75", - "measuredW": "150", - "measuredH": "100", - "x": "1391", - "y": "2039", + "ID": "2572", + "typeID": "__group__", + "zOrder": "192", + "measuredW": "215", + "measuredH": "40", + "w": "215", + "h": "40", + "x": "672", + "y": "2482", "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 0.14952920007272041, - "y": 75.11122147525384 - }, - "p1": { - "x": 0.4734542725983133, - "y": -0.000111623924779281 - }, - "p2": { - "x": 0.14952920007272041, - "y": 0.044261593589453696 + "controlName": "106-more-about-databases:profiling-performance" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "206", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "9", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "166", + "measuredH": "25", + "x": "29", + "y": "7", + "properties": { + "size": "17", + "text": "Profiling Performance" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] } } }, { - "ID": "2121", - "typeID": "Arrow", - "zOrder": "28", - "w": "469", - "h": "1", - "measuredW": "150", - "measuredH": "100", - "x": "837", - "y": "2033", + "ID": "2573", + "typeID": "TextArea", + "zOrder": "193", + "w": "337", + "h": "124", + "measuredW": "200", + "measuredH": "140", + "x": "1133", + "y": "3683" + }, + { + "ID": "2574", + "typeID": "Label", + "zOrder": "194", + "measuredW": "285", + "measuredH": "25", + "x": "1154", + "y": "3703", "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": -0.23631528854207318, - "y": -0.5 - }, - "p1": { - "x": 0.4734542725983135, - "y": -0.000111623924779277 - }, - "p2": { - "x": 468.3987853999388, - "y": -0.5 + "size": "17", + "text": "Have a look at the DevOps Roadmap" + } + }, + { + "ID": "2575", + "typeID": "__group__", + "zOrder": "195", + "measuredW": "292", + "measuredH": "44", + "w": "292", + "h": "44", + "x": "1154", + "y": "3738", + "properties": { + "controlName": "ext_link:roadmap.sh/devops" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "292", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "141", + "measuredH": "25", + "x": "75", + "y": "9", + "properties": { + "size": "17", + "text": "DevOps Roadmap" + } + } + ] } } }, { - "ID": "2122", - "typeID": "Arrow", - "zOrder": "27", - "w": "1", - "h": "91", - "measuredW": "150", - "measuredH": "100", - "x": "769", - "y": "1939", + "ID": "2576", + "typeID": "__group__", + "zOrder": "196", + "measuredW": "148", + "measuredH": "44", + "w": "148", + "h": "44", + "x": "1661", + "y": "1987", "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 0.14952920007272041, - "y": 91.51893704138683 - }, - "p1": { - "x": 0.4734542725983133, - "y": -0.0001116239247792811 - }, - "p2": { - "x": 0.14952920007272041, - "y": 0.044261593589453696 + "controlName": "106-web-security-knowledge:server-security" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "148", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "117", + "measuredH": "25", + "x": "15", + "y": "10", + "properties": { + "size": "17", + "text": "Server Security" + } + } + ] } } }, { - "ID": "2123", - "typeID": "Arrow", - "zOrder": "26", - "w": "1", - "h": "118", - "measuredW": "150", - "measuredH": "100", - "x": "768", - "y": "2031", + "ID": "2577", + "typeID": "__group__", + "zOrder": "197", + "measuredW": "242", + "measuredH": "47", + "w": "242", + "h": "47", + "x": "1568", + "y": "2039", "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": 0, - "y": -0.5 - }, - "p1": { - "x": 0.47345427259831374, - "y": -0.0001116239247792781 - }, - "p2": { - "x": 0, - "y": 117.42746065827805 + "controlName": "ext_link:roadmap.sh/best-practices/api-security" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "242", + "h": "47", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "4273622", + "borderColor": "4273622" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "208", + "measuredH": "25", + "x": "17", + "y": "11", + "properties": { + "size": "17", + "color": "16777215", + "text": "API Security Best Practices" + } + } + ] } } }, { - "ID": "2124", - "typeID": "Arrow", - "zOrder": "25", - "w": "1", - "h": "91", - "measuredW": "150", - "measuredH": "100", - "x": "768", - "y": "2148", + "ID": "2578", + "typeID": "__group__", + "zOrder": "198", + "measuredW": "179", + "measuredH": "40", + "w": "179", + "h": "40", + "x": "975", + "y": "1729", "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 0.14952920007272041, - "y": 91.51893704138683 - }, - "p1": { - "x": 0.4734542725983133, - "y": -0.0001116239247792811 - }, - "p2": { - "x": 0.14952920007272041, - "y": 0.044261593589453696 + "controlName": "102-apis:authentication:basic-authentication" + }, + "children": { + "controls": { + "control": [ + { + "ID": "1", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Canvas", + "zOrder": "0", + "w": "169", + "h": "40", + "measuredW": "100", + "measuredH": "70", + "x": "10", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "4", + "typeID": "Label", + "zOrder": "1", + "measuredW": "82", + "measuredH": "25", + "x": "54", + "y": "7", + "properties": { + "size": "17", + "text": "Basic Auth" + } + } + ] } } }, { - "ID": "2125", - "typeID": "Arrow", - "zOrder": "24", - "w": "219", - "h": "145", - "measuredW": "150", - "measuredH": "100", - "x": "868", - "y": "2155", + "ID": "2579", + "typeID": "__group__", + "zOrder": "199", + "measuredW": "179", + "measuredH": "40", + "w": "179", + "h": "40", + "x": "975", + "y": "1766", "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": -0.23631528854207318, - "y": 0.5 - }, - "p1": { - "x": 0.5857743945397229, - "y": 0.2432032446977395 - }, - "p2": { - "x": 219.0587868926923, - "y": 144.632126492103 + "controlName": "103-apis:authentication:token-authentication" + }, + "children": { + "controls": { + "control": [ + { + "ID": "1", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Canvas", + "zOrder": "0", + "w": "169", + "h": "40", + "measuredW": "100", + "measuredH": "70", + "x": "10", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "4", + "typeID": "Label", + "zOrder": "1", + "measuredW": "85", + "measuredH": "25", + "x": "52", + "y": "7", + "properties": { + "size": "17", + "text": "Token Auth" + } + } + ] } } }, { - "ID": "2126", - "typeID": "Arrow", - "zOrder": "22", - "w": "320", - "h": "1", - "measuredW": "150", - "measuredH": "100", - "x": "1295", - "y": "2316", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": 0, - "y": -0.5 - }, - "p1": { - "x": 0.4734542725983135, - "y": -0.00011162392477927686 - }, - "p2": { - "x": 320.137094685658, - "y": -0.5 - }, - "stroke": "dotted" - } - }, - { - "ID": "2127", - "typeID": "Arrow", - "zOrder": "21", - "w": "280", - "h": "72", - "measuredW": "150", - "measuredH": "100", - "x": "1287", - "y": "2223", + "ID": "2580", + "typeID": "__group__", + "zOrder": "200", + "measuredW": "179", + "measuredH": "40", + "w": "179", + "h": "40", + "x": "975", + "y": "1803", "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 0.03764989090200288, - "y": 72.32223961920909 - }, - "p1": { - "x": 0.531044448873829, - "y": -0.059547538369544246 - }, - "p2": { - "x": 280.42688459246074, - "y": 0.3899228633117673 + "controlName": "101-apis:authentication:oauth" + }, + "children": { + "controls": { + "control": [ + { + "ID": "1", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Canvas", + "zOrder": "0", + "w": "169", + "h": "40", + "measuredW": "100", + "measuredH": "70", + "x": "10", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "4", + "typeID": "Label", + "zOrder": "1", + "measuredW": "47", + "measuredH": "25", + "x": "71", + "y": "7", + "properties": { + "size": "17", + "text": "OAuth" + } + } + ] } - } - }, - { - "ID": "2128", - "typeID": "Arrow", - "zOrder": "20", - "w": "272", - "h": "35", - "measuredW": "150", - "measuredH": "100", - "x": "1299", - "y": "2269", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": -0.21829839384940897, - "y": 35.13027840564564 - }, - "p1": { - "x": 0.6266543897586216, - "y": -0.03388863281637455 - }, - "p2": { - "x": 271.362897521273, - "y": -0.10187674010012415 + } + }, + { + "ID": "2581", + "typeID": "__group__", + "zOrder": "201", + "measuredW": "178", + "measuredH": "40", + "w": "178", + "h": "40", + "x": "976", + "y": "1840", + "properties": { + "controlName": "100-apis:authentication:cookie-based" + }, + "children": { + "controls": { + "control": [ + { + "ID": "3", + "typeID": "Canvas", + "zOrder": "0", + "w": "169", + "h": "40", + "measuredW": "100", + "measuredH": "70", + "x": "9", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "4", + "typeID": "Label", + "zOrder": "1", + "measuredW": "108", + "measuredH": "25", + "x": "40", + "y": "7", + "properties": { + "size": "17", + "text": "Cookie Based" + } + }, + { + "ID": "5", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "6", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "icon": { + "ID": "check-circle", + "size": "small" + }, + "color": "10027263" + } + } + ] } } }, { - "ID": "2129", - "typeID": "Arrow", - "zOrder": "19", - "w": "280", - "h": "32", - "measuredW": "150", - "measuredH": "100", - "x": "1291", - "y": "2330", + "ID": "2582", + "typeID": "__group__", + "zOrder": "202", + "measuredW": "179", + "measuredH": "40", + "w": "179", + "h": "40", + "x": "975", + "y": "1877", "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 0.4416692841202803, - "y": 1.288397997157972 - }, - "p1": { - "x": 0.6187498978609268, - "y": 0.05481031926139201 - }, - "p2": { - "x": 280.830903985679, - "y": 32.11653374968546 + "controlName": "105-apis:authentication:openid" + }, + "children": { + "controls": { + "control": [ + { + "ID": "3", + "typeID": "Canvas", + "zOrder": "0", + "w": "169", + "h": "40", + "measuredW": "100", + "measuredH": "70", + "x": "10", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "4", + "typeID": "Label", + "zOrder": "1", + "measuredW": "61", + "measuredH": "25", + "x": "64", + "y": "7", + "properties": { + "size": "17", + "text": "OpenID" + } + }, + { + "ID": "7", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "8", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "10066329", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] } } }, { - "ID": "2130", - "typeID": "Arrow", - "zOrder": "18", - "w": "283", - "h": "70", - "measuredW": "150", - "measuredH": "100", - "x": "1286", - "y": "2337", + "ID": "2583", + "typeID": "__group__", + "zOrder": "203", + "measuredW": "179", + "measuredH": "40", + "w": "179", + "h": "40", + "x": "975", + "y": "1913", "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": -0.4303565735040138, - "y": 0.1604238547820387 - }, - "p1": { - "x": 0.6318104821378916, - "y": 0.08459535307056273 - }, - "p2": { - "x": 282.89489105686675, - "y": 70.62473414627311 + "controlName": "105-apis:authentication:saml" + }, + "children": { + "controls": { + "control": [ + { + "ID": "3", + "typeID": "Canvas", + "zOrder": "0", + "w": "169", + "h": "40", + "measuredW": "100", + "measuredH": "70", + "x": "10", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "4", + "typeID": "Label", + "zOrder": "1", + "measuredW": "46", + "measuredH": "25", + "x": "72", + "y": "7", + "properties": { + "size": "17", + "text": "SAML" + } + }, + { + "ID": "7", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "8", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "10066329", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] } } }, { - "ID": "2131", + "ID": "2584", "typeID": "Arrow", - "zOrder": "17", + "zOrder": "204", "w": "1", - "h": "141", + "h": "211", "measuredW": "150", "measuredH": "100", - "x": "1086", - "y": "2351", + "x": "1391", + "y": "1801", "properties": { "color": "2848996", "direction": "bottom", @@ -12455,224 +12189,590 @@ "y": -0.5 }, "p1": { - "x": 0.4734542725983137, + "x": 0.47345427259831363, "y": -0.00011162392477927808 }, "p2": { "x": 0, - "y": 140.20697009709465 + "y": 210.88680138292193 } } }, { - "ID": "2132", - "typeID": "Arrow", - "zOrder": "16", - "w": "1", - "h": "95", - "measuredW": "150", - "measuredH": "100", - "x": "1086", - "y": "2494", + "ID": "2585", + "typeID": "__group__", + "zOrder": "205", + "measuredW": "195", + "measuredH": "50", + "w": "195", + "h": "50", + "x": "1293", + "y": "2008", "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 0.14952920007272041, - "y": 95.46927069197682 - }, - "p1": { - "x": 0.47345427259831324, - "y": -0.00011162392477928106 - }, - "p2": { - "x": 0.14952920007272041, - "y": 0.044261593589453696 + "controlName": "112-testing" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "195", + "h": "50", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "56", + "measuredH": "25", + "x": "70", + "y": "13", + "properties": { + "text": "Testing", + "size": "17" + } + } + ] } } }, { - "ID": "2133", - "typeID": "Arrow", - "zOrder": "15", - "w": "413", - "h": "1", - "measuredW": "150", - "measuredH": "100", - "x": "1160", - "y": "2489", + "ID": "2586", + "typeID": "__group__", + "zOrder": "206", + "measuredW": "223", + "measuredH": "40", + "w": "223", + "h": "40", + "x": "1278", + "y": "2093", "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": -0.23631528854207318, - "y": -0.5 - }, - "p1": { - "x": 0.4734542725983137, - "y": -0.00011162392477927657 - }, - "p2": { - "x": 412.9689266111002, - "y": -0.5 + "controlName": "100-testing:integration-testing" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "212", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "150", + "measuredW": "144", + "measuredH": "25", + "x": "31", + "y": "7", + "properties": { + "size": "17", + "text": "Integration Testing" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "199", + "y": "7", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "199", + "y": "7", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "2587", + "typeID": "__group__", + "zOrder": "207", + "measuredW": "224", + "measuredH": "37", + "w": "224", + "h": "37", + "x": "1276", + "y": "2136", + "properties": { + "controlName": "101-testing:unit-testing" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "214", + "h": "37", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "99", + "measuredW": "91", + "measuredH": "25", + "x": "47", + "y": "6", + "properties": { + "size": "17", + "text": "Unit Testing" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "200", + "y": "7", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "200", + "y": "7", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] } } }, { - "ID": "2134", - "typeID": "Arrow", - "zOrder": "14", - "w": "1", - "h": "68", - "measuredW": "150", - "measuredH": "100", - "x": "1379", - "y": "2491", + "ID": "2588", + "typeID": "__group__", + "zOrder": "208", + "measuredW": "225", + "measuredH": "37", + "w": "225", + "h": "37", + "x": "1276", + "y": "2175", "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 0.14952920007272041, - "y": 68.46927069197682 - }, - "p1": { - "x": 0.47345427259831335, - "y": -0.00011162392477928112 - }, - "p2": { - "x": 0.14952920007272041, - "y": 0.11283757677028916 + "controlName": "102-testing:functional-testing" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "214", + "h": "37", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "151", + "measuredW": "140", + "measuredH": "25", + "x": "29", + "y": "6", + "properties": { + "size": "17", + "text": "Functional Testing" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "201", + "y": "7", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "201", + "y": "7", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] } } }, { - "ID": "2135", - "typeID": "Arrow", - "zOrder": "13", - "w": "1", - "h": "61", - "measuredW": "150", - "measuredH": "100", - "x": "1751", - "y": "2608", + "ID": "2589", + "typeID": "__group__", + "zOrder": "209", + "measuredW": "218", + "measuredH": "40", + "w": "218", + "h": "40", + "x": "670", + "y": "1852", "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 0, - "y": 61.303758754635055 - }, - "p1": { - "x": 0.5702216182256715, - "y": -0.004517251466967861 - }, - "p2": { - "x": 0, - "y": 0.4406451246140932 + "controlName": "101-scaling-databases:data-replication" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "208", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "10", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "129", + "measuredW": "128", + "measuredH": "25", + "x": "49", + "y": "7", + "properties": { + "size": "17", + "text": "Data Replication" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "10066329", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] } } }, { - "ID": "2136", - "typeID": "Arrow", - "zOrder": "12", - "w": "1", - "h": "260", - "measuredW": "150", - "measuredH": "100", - "x": "1567", - "y": "2502", + "ID": "2590", + "typeID": "__group__", + "zOrder": "210", + "measuredW": "215", + "measuredH": "40", + "w": "215", + "h": "40", + "x": "672", + "y": "1895", "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": 0, - "y": -0.5 - }, - "p1": { - "x": 0.4734542725983138, - "y": -0.00011162392477927808 - }, - "p2": { - "x": 0, - "y": 259.3201595478108 + "controlName": "102-scaling-databases:sharding-strategies" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "208", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "7", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "155", + "measuredW": "151", + "measuredH": "25", + "x": "33", + "y": "7", + "properties": { + "size": "17", + "text": "Sharding Strategies" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "7", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "7", + "properties": { + "color": "10066329", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] } } }, { - "ID": "2137", - "typeID": "Arrow", - "zOrder": "11", - "w": "623", - "h": "1", - "measuredW": "150", - "measuredH": "100", - "x": "849", - "y": "2811", + "ID": "2591", + "typeID": "__group__", + "zOrder": "211", + "measuredW": "216", + "measuredH": "40", + "w": "216", + "h": "40", + "x": "672", + "y": "1938", "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": -0.27015691059352775, - "y": -0.5 - }, - "p1": { - "x": 0.47345427259831374, - "y": -0.00011162392477927636 - }, - "p2": { - "x": 622.4205322823302, - "y": -0.5 + "controlName": "103-scaling-databases:cap-theorem" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "208", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "8", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "109", + "measuredW": "107", + "measuredH": "25", + "x": "57", + "y": "7", + "properties": { + "size": "17", + "text": "CAP Theorem" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "10066329", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] } } }, { - "ID": "2138", - "typeID": "Arrow", - "zOrder": "10", - "w": "1", - "h": "91", - "measuredW": "150", - "measuredH": "100", - "x": "747", - "y": "2729", + "ID": "2592", + "typeID": "__group__", + "zOrder": "212", + "measuredW": "200", + "measuredH": "50", + "w": "200", + "h": "50", + "x": "674", + "y": "3019", "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 0.14952920007272041, - "y": 91.51893704138683 - }, - "p1": { - "x": 0.4734542725983133, - "y": -0.0001116239247792811 - }, - "p2": { - "x": 0.14952920007272041, - "y": 0.044261593589453696 + "controlName": "121-web-sockets" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "h": "50", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "95", + "measuredH": "25", + "x": "52", + "y": "12", + "properties": { + "text": "WebSockets", + "size": "17" + } + } + ] } } }, { - "ID": "2139", + "ID": "2593", "typeID": "__group__", "zOrder": "213", "measuredW": "200", @@ -12718,7 +12818,7 @@ } }, { - "ID": "2140", + "ID": "2594", "typeID": "__group__", "zOrder": "214", "measuredW": "200", @@ -12764,46 +12864,64 @@ } }, { - "ID": "2144", - "typeID": "Arrow", - "zOrder": "8", - "w": "1", - "h": "141", - "measuredW": "150", - "measuredH": "100", - "x": "745", - "y": "2813", + "ID": "2595", + "typeID": "__group__", + "zOrder": "215", + "measuredW": "212", + "measuredH": "41", + "w": "212", + "h": "41", + "x": "671", + "y": "3220", "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": 0, - "y": -0.5 - }, - "p1": { - "x": 0.4734542725983137, - "y": -0.00011162392477927808 - }, - "p2": { - "x": 0, - "y": 140.20697009709465 + "controlName": "103-scalability:horizontal-vertical-scaling" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "212", + "h": "41", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "125", + "measuredH": "25", + "x": "43", + "y": "8", + "properties": { + "size": "17", + "text": "Types of Scaling" + } + } + ] } } }, { - "ID": "2145", + "ID": "2596", "typeID": "__group__", - "zOrder": "9", - "measuredW": "200", - "measuredH": "50", - "w": "200", - "h": "50", - "x": "674", - "y": "2927", + "zOrder": "216", + "measuredW": "432", + "measuredH": "124", + "w": "432", + "h": "124", + "x": "670", + "y": "3491", "properties": { - "controlName": "120-real-time-data" + "controlName": "104-scalability:observability" }, "children": { "controls": { @@ -12812,23 +12930,53 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "h": "50", + "w": "432", + "h": "124", "measuredW": "200", "measuredH": "140", "x": "0", - "y": "0" + "y": "0", + "properties": { + "color": "16770457" + } }, { "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "120", + "measuredW": "105", + "measuredH": "26", + "x": "18", + "y": "18", + "properties": { + "text": "Observability", + "size": "18" + } + }, + { + "ID": "2", + "typeID": "Label", + "zOrder": "2", + "measuredW": "400", "measuredH": "25", - "x": "40", - "y": "12", + "x": "18", + "y": "50", "properties": { "size": "17", - "text": "Real-Time Data" + "text": "Metrics logging and other observable items that can" + } + }, + { + "ID": "3", + "typeID": "Label", + "zOrder": "3", + "measuredW": "283", + "measuredH": "25", + "x": "18", + "y": "79", + "properties": { + "size": "17", + "text": "help in debugging and solving issues" } } ] @@ -12836,155 +12984,7 @@ } }, { - "ID": "2146", - "typeID": "Arrow", - "zOrder": "7", - "w": "487", - "h": "1", - "measuredW": "150", - "measuredH": "100", - "x": "837", - "y": "2949", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": -0.27015691059352775, - "y": -0.5 - }, - "p1": { - "x": 0.47345427259831374, - "y": -0.00011162392477927586 - }, - "p2": { - "x": 486.40782766206894, - "y": -0.5 - } - } - }, - { - "ID": "2147", - "typeID": "Arrow", - "zOrder": "6", - "w": "1", - "h": "95", - "measuredW": "150", - "measuredH": "100", - "x": "1051", - "y": "2946", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 0.14952920007272041, - "y": 95.70939424936978 - }, - "p1": { - "x": 0.4734542725983132, - "y": -0.00011162392477928113 - }, - "p2": { - "x": 0.14952920007272041, - "y": 0.28897406297528505 - } - } - }, - { - "ID": "2148", - "typeID": "Arrow", - "zOrder": "5", - "w": "276", - "h": "1", - "measuredW": "150", - "measuredH": "100", - "x": "1264", - "y": "2948", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 0.14952920007272041, - "y": -0.2906057506302204 - }, - "p1": { - "x": 0.47345427259831324, - "y": -0.00011162392477928119 - }, - "p2": { - "x": 276.35388907392644, - "y": -0.2906057506302204 - } - } - }, - { - "ID": "2149", - "typeID": "Arrow", - "zOrder": "4", - "w": "1", - "h": "744", - "measuredW": "150", - "measuredH": "100", - "x": "1301", - "y": "2957", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": 0, - "y": -0.5 - }, - "p1": { - "x": 0.4734542725983139, - "y": -0.00011162392477927807 - }, - "p2": { - "x": 0, - "y": 743.8442967676933 - } - } - }, - { - "ID": "2150", - "typeID": "Arrow", - "zOrder": "1", - "w": "136", - "h": "1", - "measuredW": "150", - "measuredH": "100", - "x": "1071", - "y": "3249", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": -0.08928421577456902, - "y": -0.2906057506302204 - }, - "p1": { - "x": 0.4734542725983134, - "y": -0.00011162392477928117 - }, - "p2": { - "x": 136.35388907392644, - "y": -0.2906057506302204 - } - } - }, - { - "ID": "2151", + "ID": "2597", "typeID": "__group__", "zOrder": "217", "measuredW": "239", @@ -13033,7 +13033,7 @@ } }, { - "ID": "2152", + "ID": "2598", "typeID": "Arrow", "zOrder": "218", "w": "3", @@ -13062,7 +13062,7 @@ } }, { - "ID": "2153", + "ID": "2599", "typeID": "Arrow", "zOrder": "219", "w": "3", @@ -13091,7 +13091,7 @@ } }, { - "ID": "2154", + "ID": "2600", "typeID": "Arrow", "zOrder": "220", "w": "3", @@ -13118,17 +13118,66 @@ "y": 0.452028801972574 } } + }, + { + "ID": "2601", + "typeID": "__group__", + "zOrder": "221", + "measuredW": "410", + "measuredH": "47", + "w": "410", + "h": "47", + "x": "665", + "y": "831", + "properties": { + "controlName": "json:backend-beginner.json" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "410", + "h": "47", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "3355443", + "borderColor": "3355443" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "210", + "measuredH": "26", + "x": "100", + "y": "11", + "properties": { + "color": "16777215", + "size": "18", + "text": "Visit the Beginner Version" + } + } + ] + } + } } ] }, "attributes": { - "name": "New Wireframe 1 copy 2", - "order": 1000018.3019863295, + "name": "New Wireframe 1 copy 6", + "order": 1000022.7193818908, "parentID": null, "notes": "" }, "branchID": "Master", - "resourceID": "7BDB8D3D-BEB5-4A58-BF91-F519F8754661", + "resourceID": "DAF9FB64-BA77-40D4-BCEF-EEE21C480971", "mockupH": "3227", "mockupW": "1203", "measuredW": "1851", diff --git a/src/data/roadmaps/backend/content/103-learn-a-language/100-go.md b/src/data/roadmaps/backend/content/103-learn-a-language/100-go.md index 84c2bdd7f..690b76514 100644 --- a/src/data/roadmaps/backend/content/103-learn-a-language/100-go.md +++ b/src/data/roadmaps/backend/content/103-learn-a-language/100-go.md @@ -7,7 +7,6 @@ Visit the following resources to learn more: - [Visit Dedicated Go Roadmap](/golang) - [A Tour of Go – Go Basics](https://go.dev/tour/welcome/1) - [Go Reference Documentation](https://go.dev/doc/) -- [Learn Go | Boot.dev](https://boot.dev/learn/learn-golang) - [Go by Example - annotated example programs](https://gobyexample.com/) - [Learn Go | Codecademy](https://www.codecademy.com/learn/learn-go) - [W3Schools Go Tutorial ](https://www.w3schools.com/go/) diff --git a/src/data/roadmaps/blockchain/content/109-dapps/107-supporting-languages/102-go.md b/src/data/roadmaps/blockchain/content/109-dapps/107-supporting-languages/102-go.md index 54e7c86ea..831974b11 100644 --- a/src/data/roadmaps/blockchain/content/109-dapps/107-supporting-languages/102-go.md +++ b/src/data/roadmaps/blockchain/content/109-dapps/107-supporting-languages/102-go.md @@ -7,7 +7,6 @@ Visit the following resources to learn more: - [Visit Dedicated Go Roadmap](/golang) - [A Tour of Go – Go Basics](https://go.dev/tour/welcome/1) - [Go Reference Documentation](https://go.dev/doc/) -- [Learn Go | Boot.dev](https://boot.dev/learn/learn-golang) - [Go by Example - annotated example programs](https://gobyexample.com/) - [Learn Go | Codecademy](https://www.codecademy.com/learn/learn-go) - [W3Schools Go Tutorial ](https://www.w3schools.com/go/) diff --git a/src/data/roadmaps/computer-science/content/101-pick-a-language/104-go.md b/src/data/roadmaps/computer-science/content/101-pick-a-language/104-go.md index dcddf8de0..690b76514 100644 --- a/src/data/roadmaps/computer-science/content/101-pick-a-language/104-go.md +++ b/src/data/roadmaps/computer-science/content/101-pick-a-language/104-go.md @@ -8,7 +8,6 @@ Visit the following resources to learn more: - [A Tour of Go – Go Basics](https://go.dev/tour/welcome/1) - [Go Reference Documentation](https://go.dev/doc/) - [Go by Example - annotated example programs](https://gobyexample.com/) -- [Learn Go | Boot.dev](https://boot.dev/learn/learn-golang) - [Learn Go | Codecademy](https://www.codecademy.com/learn/learn-go) - [W3Schools Go Tutorial ](https://www.w3schools.com/go/) - [Making a RESTful JSON API in Go](https://thenewstack.io/make-a-restful-json-api-go/) diff --git a/src/data/roadmaps/devops/content/100-language/103-go.md b/src/data/roadmaps/devops/content/100-language/103-go.md index c1ec6b90b..7198699cb 100644 --- a/src/data/roadmaps/devops/content/100-language/103-go.md +++ b/src/data/roadmaps/devops/content/100-language/103-go.md @@ -7,7 +7,6 @@ Visit the following resources to learn more: - [Visit Dedicated Go Roadmap](/golang) - [A Tour of Go – Go Basics](https://go.dev/tour/welcome/1) - [Go Reference Documentation](https://go.dev/doc/) -- [Learn Go | Boot.dev](https://boot.dev/learn/learn-golang) - [Go by Example - annotated example programs](https://gobyexample.com/) - [Learn Go | Codecademy](https://www.codecademy.com/learn/learn-go) - [W3Schools Go Tutorial ](https://www.w3schools.com/go/) diff --git a/src/data/roadmaps/software-architect/content/104-programming-languages/103-go.md b/src/data/roadmaps/software-architect/content/104-programming-languages/103-go.md index 54e7c86ea..831974b11 100644 --- a/src/data/roadmaps/software-architect/content/104-programming-languages/103-go.md +++ b/src/data/roadmaps/software-architect/content/104-programming-languages/103-go.md @@ -7,7 +7,6 @@ Visit the following resources to learn more: - [Visit Dedicated Go Roadmap](/golang) - [A Tour of Go – Go Basics](https://go.dev/tour/welcome/1) - [Go Reference Documentation](https://go.dev/doc/) -- [Learn Go | Boot.dev](https://boot.dev/learn/learn-golang) - [Go by Example - annotated example programs](https://gobyexample.com/) - [Learn Go | Codecademy](https://www.codecademy.com/learn/learn-go) - [W3Schools Go Tutorial ](https://www.w3schools.com/go/)