From 9511de967cef73a42993664b18c383fadcde60d2 Mon Sep 17 00:00:00 2001 From: Kamran Ahmed Date: Mon, 25 Mar 2024 21:53:25 +0000 Subject: [PATCH] Change backend performance dimensions --- .../best-practices/backend-performance.pdf | Bin 0 -> 63767 bytes .../backend-performance.json | 429 +++++++----------- .../backend-performance.md | 2 +- 3 files changed, 177 insertions(+), 254 deletions(-) create mode 100644 public/pdfs/best-practices/backend-performance.pdf diff --git a/public/pdfs/best-practices/backend-performance.pdf b/public/pdfs/best-practices/backend-performance.pdf new file mode 100644 index 0000000000000000000000000000000000000000..8ba3aa62fdeff4b68064db6a76ab60d95c418ebd GIT binary patch literal 63767 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%0AZMu?Pw$}uZtEcM>Uy!iDj;lu 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 G>3;xUiJXA| literal 0 HcmV?d00001 diff --git a/src/data/best-practices/backend-performance/backend-performance.json b/src/data/best-practices/backend-performance/backend-performance.json index 0d67ac6bb..b2b24bcdf 100644 --- a/src/data/best-practices/backend-performance/backend-performance.json +++ b/src/data/best-practices/backend-performance/backend-performance.json @@ -11,7 +11,7 @@ "measuredW": "150", "measuredH": "100", "x": "814", - "y": "2405", + "y": "2335", "properties": { "curvature": "0", "leftArrow": "false", @@ -41,7 +41,7 @@ "measuredW": "150", "measuredH": "100", "x": "225", - "y": "769", + "y": "718", "properties": { "curvature": "0", "leftArrow": "false", @@ -187,7 +187,7 @@ "zOrder": "10", "measuredW": "323", "measuredH": "40", - "x": "671", + "x": "661", "y": "226", "properties": { "size": "32", @@ -288,7 +288,7 @@ "h": "169", "measuredW": "100", "measuredH": "70", - "x": "226", + "x": "196", "y": "148" }, { @@ -299,7 +299,7 @@ "measuredH": "27", "w": "189", "h": "27", - "x": "256", + "x": "226", "y": "222", "properties": { "controlName": "ext_link:roadmap.sh/backend" @@ -381,7 +381,7 @@ "measuredH": "27", "w": "238", "h": "27", - "x": "256", + "x": "226", "y": "258", "properties": { "controlName": "ext_link:roadmap.sh/system-design" @@ -461,7 +461,7 @@ "zOrder": "18", "measuredW": "209", "measuredH": "32", - "x": "256", + "x": "226", "y": "172", "properties": { "size": "24", @@ -549,7 +549,7 @@ "measuredW": "200", "measuredH": "140", "x": "578", - "y": "2319" + "y": "2249" }, { "ID": "1702", @@ -558,7 +558,7 @@ "measuredW": "366", "measuredH": "25", "x": "631", - "y": "2338", + "y": "2268", "properties": { "size": "17", "text": "Continue Learning with following relevant tracks" @@ -573,7 +573,7 @@ "w": "235", "h": "44", "x": "801", - "y": "2375", + "y": "2305", "properties": { "controlName": "ext_link:roadmap.sh/backend" }, @@ -620,7 +620,7 @@ "w": "198", "h": "44", "x": "593", - "y": "2375", + "y": "2305", "properties": { "controlName": "ext_link:roadmap.sh/frontend" }, @@ -667,7 +667,7 @@ "w": "30", "h": "30", "x": "218", - "y": "661", + "y": "589", "properties": { "controlName": "check:cache-invalidation" }, @@ -698,7 +698,7 @@ "measuredW": "100", "measuredH": "70", "x": "362", - "y": "745", + "y": "694", "properties": { "color": "16776960" } @@ -710,7 +710,7 @@ "measuredW": "98", "measuredH": "28", "x": "408", - "y": "756", + "y": "705", "properties": { "size": "20", "text": "Databases" @@ -725,7 +725,7 @@ "w": "30", "h": "30", "x": "218", - "y": "822", + "y": "771", "properties": { "controlName": "check:connection-pooling" }, @@ -756,7 +756,7 @@ "w": "503", "h": "28", "x": "262", - "y": "823", + "y": "772", "properties": { "controlName": "connection-pooling" }, @@ -789,7 +789,7 @@ "w": "30", "h": "30", "x": "218", - "y": "1124", + "y": "1073", "properties": { "controlName": "check:pagination-large-data" }, @@ -820,7 +820,7 @@ "w": "437", "h": "28", "x": "262", - "y": "1125", + "y": "1074", "properties": { "controlName": "pagination-large-data" }, @@ -853,7 +853,7 @@ "w": "30", "h": "30", "x": "218", - "y": "969", + "y": "918", "properties": { "controlName": "check:db-indexes" }, @@ -884,7 +884,7 @@ "w": "303", "h": "28", "x": "262", - "y": "970", + "y": "919", "properties": { "controlName": "db-indexes" }, @@ -917,7 +917,7 @@ "w": "30", "h": "30", "x": "218", - "y": "1164", + "y": "1113", "properties": { "controlName": "check:select-star" }, @@ -948,7 +948,7 @@ "w": "511", "h": "28", "x": "262", - "y": "1165", + "y": "1114", "properties": { "controlName": "select-star" }, @@ -981,7 +981,7 @@ "measuredW": "100", "measuredH": "70", "x": "362", - "y": "1642", + "y": "1592", "properties": { "color": "16776960" } @@ -993,7 +993,7 @@ "measuredW": "73", "measuredH": "28", "x": "420", - "y": "1653", + "y": "1603", "properties": { "size": "20", "text": "Security" @@ -1008,7 +1008,7 @@ "w": "30", "h": "30", "x": "218", - "y": "1720", + "y": "1670", "properties": { "controlName": "check:up-to-date" }, @@ -1039,7 +1039,7 @@ "w": "323", "h": "28", "x": "264", - "y": "1721", + "y": "1671", "properties": { "controlName": "up-to-date" }, @@ -1072,7 +1072,7 @@ "w": "30", "h": "30", "x": "218", - "y": "1832", + "y": "1782", "properties": { "controlName": "check:request-throttling" }, @@ -1103,7 +1103,7 @@ "w": "407", "h": "28", "x": "264", - "y": "1833", + "y": "1783", "properties": { "controlName": "request-throttling" }, @@ -1264,7 +1264,7 @@ "measuredW": "150", "measuredH": "100", "x": "225", - "y": "1667", + "y": "1617", "properties": { "curvature": "0", "leftArrow": "false", @@ -1293,7 +1293,7 @@ "w": "30", "h": "30", "x": "218", - "y": "1273", + "y": "1222", "properties": { "controlName": "check:join-operations" }, @@ -1324,7 +1324,7 @@ "w": "494", "h": "28", "x": "262", - "y": "1274", + "y": "1223", "properties": { "controlName": "join-operations" }, @@ -1348,41 +1348,10 @@ } } }, - { - "ID": "1738", - "typeID": "__group__", - "zOrder": "50", - "measuredW": "30", - "measuredH": "30", - "w": "30", - "h": "30", - "x": "218", - "y": "588", - "properties": { - "controlName": "check:caching-locations" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "30", - "h": "30", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0" - } - ] - } - } - }, { "ID": "1741", "typeID": "Canvas", - "zOrder": "53", + "zOrder": "51", "w": "281", "h": "50", "measuredW": "100", @@ -1396,7 +1365,7 @@ { "ID": "1742", "typeID": "Label", - "zOrder": "54", + "zOrder": "52", "measuredW": "214", "measuredH": "28", "x": "999", @@ -1409,7 +1378,7 @@ { "ID": "1743", "typeID": "Arrow", - "zOrder": "52", + "zOrder": "50", "w": "591", "h": "1", "measuredW": "150", @@ -1438,7 +1407,7 @@ { "ID": "1744", "typeID": "__group__", - "zOrder": "55", + "zOrder": "53", "measuredW": "30", "measuredH": "30", "w": "30", @@ -1469,7 +1438,7 @@ { "ID": "1745", "typeID": "__group__", - "zOrder": "56", + "zOrder": "54", "measuredW": "437", "measuredH": "28", "w": "437", @@ -1502,7 +1471,7 @@ { "ID": "1746", "typeID": "Canvas", - "zOrder": "57", + "zOrder": "55", "w": "300", "h": "50", "measuredW": "100", @@ -1516,7 +1485,7 @@ { "ID": "1747", "typeID": "Label", - "zOrder": "58", + "zOrder": "56", "measuredW": "125", "measuredH": "28", "x": "1043", @@ -1558,7 +1527,7 @@ { "ID": "1751", "typeID": "__group__", - "zOrder": "59", + "zOrder": "57", "measuredW": "30", "measuredH": "30", "w": "30", @@ -1589,7 +1558,7 @@ { "ID": "1752", "typeID": "__group__", - "zOrder": "60", + "zOrder": "58", "measuredW": "449", "measuredH": "28", "w": "449", @@ -1622,7 +1591,7 @@ { "ID": "1753", "typeID": "__group__", - "zOrder": "61", + "zOrder": "59", "measuredW": "30", "measuredH": "30", "w": "30", @@ -1653,7 +1622,7 @@ { "ID": "1754", "typeID": "__group__", - "zOrder": "62", + "zOrder": "60", "measuredW": "448", "measuredH": "59", "w": "448", @@ -1699,7 +1668,7 @@ { "ID": "1755", "typeID": "__group__", - "zOrder": "63", + "zOrder": "61", "measuredW": "30", "measuredH": "30", "w": "30", @@ -1730,7 +1699,7 @@ { "ID": "1756", "typeID": "__group__", - "zOrder": "64", + "zOrder": "62", "measuredW": "426", "measuredH": "60", "w": "426", @@ -1776,7 +1745,7 @@ { "ID": "1757", "typeID": "Arrow", - "zOrder": "65", + "zOrder": "63", "w": "587", "h": "1", "measuredW": "150", @@ -1805,7 +1774,7 @@ { "ID": "1758", "typeID": "Canvas", - "zOrder": "66", + "zOrder": "64", "w": "300", "h": "50", "measuredW": "100", @@ -1819,7 +1788,7 @@ { "ID": "1759", "typeID": "Label", - "zOrder": "67", + "zOrder": "65", "measuredW": "231", "measuredH": "28", "x": "990", @@ -1832,7 +1801,7 @@ { "ID": "1760", "typeID": "__group__", - "zOrder": "68", + "zOrder": "66", "measuredW": "30", "measuredH": "30", "w": "30", @@ -1863,7 +1832,7 @@ { "ID": "1761", "typeID": "__group__", - "zOrder": "69", + "zOrder": "67", "measuredW": "497", "measuredH": "28", "w": "497", @@ -1896,7 +1865,7 @@ { "ID": "1762", "typeID": "__group__", - "zOrder": "70", + "zOrder": "68", "measuredW": "30", "measuredH": "30", "w": "30", @@ -1927,7 +1896,7 @@ { "ID": "1763", "typeID": "__group__", - "zOrder": "71", + "zOrder": "69", "measuredW": "479", "measuredH": "28", "w": "479", @@ -1960,7 +1929,7 @@ { "ID": "1764", "typeID": "Canvas", - "zOrder": "72", + "zOrder": "70", "w": "300", "h": "50", "measuredW": "100", @@ -1974,7 +1943,7 @@ { "ID": "1765", "typeID": "Label", - "zOrder": "73", + "zOrder": "71", "measuredW": "168", "measuredH": "28", "x": "1022", @@ -2016,7 +1985,7 @@ { "ID": "1767", "typeID": "__group__", - "zOrder": "74", + "zOrder": "72", "measuredW": "30", "measuredH": "30", "w": "30", @@ -2047,7 +2016,7 @@ { "ID": "1768", "typeID": "__group__", - "zOrder": "75", + "zOrder": "73", "measuredW": "474", "measuredH": "28", "w": "474", @@ -2080,7 +2049,7 @@ { "ID": "1769", "typeID": "__group__", - "zOrder": "76", + "zOrder": "74", "measuredW": "30", "measuredH": "30", "w": "30", @@ -2111,7 +2080,7 @@ { "ID": "1770", "typeID": "__group__", - "zOrder": "77", + "zOrder": "75", "measuredW": "410", "measuredH": "28", "w": "410", @@ -2144,7 +2113,7 @@ { "ID": "1771", "typeID": "__group__", - "zOrder": "78", + "zOrder": "76", "measuredW": "30", "measuredH": "30", "w": "30", @@ -2175,13 +2144,13 @@ { "ID": "1773", "typeID": "__group__", - "zOrder": "80", + "zOrder": "78", "measuredW": "30", "measuredH": "30", "w": "30", "h": "30", "x": "218", - "y": "1313", + "y": "1262", "properties": { "controlName": "check:cleanup-data" }, @@ -2206,13 +2175,13 @@ { "ID": "1774", "typeID": "__group__", - "zOrder": "81", + "zOrder": "79", "measuredW": "491", "measuredH": "96", "w": "491", "h": "96", "x": "262", - "y": "1314", + "y": "1263", "properties": { "controlName": "cleanup-data" }, @@ -2265,13 +2234,13 @@ { "ID": "1775", "typeID": "__group__", - "zOrder": "82", + "zOrder": "80", "measuredW": "30", "measuredH": "30", "w": "30", "h": "30", "x": "218", - "y": "1423", + "y": "1372", "properties": { "controlName": "check:slow-logging" }, @@ -2296,13 +2265,13 @@ { "ID": "1776", "typeID": "__group__", - "zOrder": "83", + "zOrder": "81", "measuredW": "463", "measuredH": "28", "w": "463", "h": "28", "x": "262", - "y": "1424", + "y": "1373", "properties": { "controlName": "slow-logging" }, @@ -2329,7 +2298,7 @@ { "ID": "1777", "typeID": "Arrow", - "zOrder": "84", + "zOrder": "82", "w": "587", "h": "1", "measuredW": "150", @@ -2358,13 +2327,13 @@ { "ID": "1778", "typeID": "Canvas", - "zOrder": "85", - "w": "300", + "zOrder": "127", + "w": "189", "h": "50", "measuredW": "100", "measuredH": "70", - "x": "956", - "y": "1951", + "x": "362", + "y": "1897", "properties": { "color": "16776960" } @@ -2372,11 +2341,11 @@ { "ID": "1779", "typeID": "Label", - "zOrder": "86", + "zOrder": "128", "measuredW": "75", "measuredH": "28", - "x": "1068", - "y": "1962", + "x": "419", + "y": "1908", "properties": { "size": "20", "text": "Network" @@ -2385,13 +2354,13 @@ { "ID": "1780", "typeID": "__group__", - "zOrder": "87", + "zOrder": "129", "measuredW": "30", "measuredH": "30", "w": "30", "h": "30", - "x": "855", - "y": "2023", + "x": "220", + "y": "1974", "properties": { "controlName": "check:network-latency" }, @@ -2416,13 +2385,13 @@ { "ID": "1781", "typeID": "__group__", - "zOrder": "88", + "zOrder": "130", "measuredW": "447", "measuredH": "59", "w": "447", "h": "59", - "x": "900", - "y": "2025", + "x": "265", + "y": "1976", "properties": { "controlName": "network-latency" }, @@ -2462,13 +2431,13 @@ { "ID": "1782", "typeID": "__group__", - "zOrder": "89", + "zOrder": "131", "measuredW": "30", "measuredH": "30", "w": "30", "h": "30", - "x": "855", - "y": "2141", + "x": "220", + "y": "2092", "properties": { "controlName": "check:cdns" }, @@ -2493,13 +2462,13 @@ { "ID": "1783", "typeID": "__group__", - "zOrder": "90", + "zOrder": "132", "measuredW": "471", "measuredH": "28", "w": "471", "h": "28", - "x": "900", - "y": "2143", + "x": "265", + "y": "2094", "properties": { "controlName": "cdns" }, @@ -2526,13 +2495,13 @@ { "ID": "1784", "typeID": "__group__", - "zOrder": "91", + "zOrder": "83", "measuredW": "30", "measuredH": "30", "w": "30", "h": "30", "x": "218", - "y": "1873", + "y": "1823", "properties": { "controlName": "check:regular-audits" }, @@ -2557,13 +2526,13 @@ { "ID": "1785", "typeID": "__group__", - "zOrder": "92", + "zOrder": "84", "measuredW": "412", "measuredH": "28", "w": "412", "h": "28", "x": "264", - "y": "1874", + "y": "1824", "properties": { "controlName": "regular-audits" }, @@ -2590,13 +2559,13 @@ { "ID": "1786", "typeID": "__group__", - "zOrder": "93", + "zOrder": "85", "measuredW": "30", "measuredH": "30", "w": "30", "h": "30", "x": "218", - "y": "1760", + "y": "1710", "properties": { "controlName": "check:authentication-authorization" }, @@ -2621,7 +2590,7 @@ { "ID": "1790", "typeID": "Canvas", - "zOrder": "95", + "zOrder": "87", "w": "300", "h": "50", "measuredW": "100", @@ -2635,7 +2604,7 @@ { "ID": "1791", "typeID": "Label", - "zOrder": "96", + "zOrder": "88", "measuredW": "215", "measuredH": "28", "x": "998", @@ -2648,7 +2617,7 @@ { "ID": "1792", "typeID": "__group__", - "zOrder": "97", + "zOrder": "89", "measuredW": "30", "measuredH": "30", "w": "30", @@ -2679,7 +2648,7 @@ { "ID": "1793", "typeID": "__group__", - "zOrder": "98", + "zOrder": "90", "measuredW": "482", "measuredH": "59", "w": "482", @@ -2754,7 +2723,7 @@ { "ID": "1795", "typeID": "__group__", - "zOrder": "99", + "zOrder": "91", "measuredW": "30", "measuredH": "30", "w": "30", @@ -2785,7 +2754,7 @@ { "ID": "1796", "typeID": "__group__", - "zOrder": "100", + "zOrder": "92", "measuredW": "421", "measuredH": "28", "w": "421", @@ -2818,13 +2787,13 @@ { "ID": "1797", "typeID": "__group__", - "zOrder": "101", + "zOrder": "93", "measuredW": "30", "measuredH": "30", "w": "30", "h": "30", "x": "218", - "y": "1466", + "y": "1415", "properties": { "controlName": "check:replication" }, @@ -2849,13 +2818,13 @@ { "ID": "1798", "typeID": "__group__", - "zOrder": "102", + "zOrder": "94", "measuredW": "428", "measuredH": "60", "w": "428", "h": "60", "x": "262", - "y": "1466", + "y": "1415", "properties": { "controlName": "replication" }, @@ -2895,13 +2864,13 @@ { "ID": "1799", "typeID": "__group__", - "zOrder": "103", + "zOrder": "95", "measuredW": "30", "measuredH": "30", "w": "30", "h": "30", "x": "218", - "y": "1536", + "y": "1485", "properties": { "controlName": "check:use-db-sharding" }, @@ -2926,13 +2895,13 @@ { "ID": "1800", "typeID": "__group__", - "zOrder": "104", + "zOrder": "96", "measuredW": "436", "measuredH": "28", "w": "436", "h": "28", "x": "262", - "y": "1537", + "y": "1486", "properties": { "controlName": "use-db-sharding" }, @@ -2959,7 +2928,7 @@ { "ID": "1801", "typeID": "__group__", - "zOrder": "105", + "zOrder": "97", "measuredW": "30", "measuredH": "30", "w": "30", @@ -2990,7 +2959,7 @@ { "ID": "1802", "typeID": "__group__", - "zOrder": "106", + "zOrder": "98", "measuredW": "492", "measuredH": "59", "w": "492", @@ -3036,7 +3005,7 @@ { "ID": "1803", "typeID": "__group__", - "zOrder": "107", + "zOrder": "99", "measuredW": "30", "measuredH": "30", "w": "30", @@ -3067,7 +3036,7 @@ { "ID": "1804", "typeID": "__group__", - "zOrder": "108", + "zOrder": "100", "measuredW": "474", "measuredH": "59", "w": "474", @@ -3113,13 +3082,13 @@ { "ID": "1807", "typeID": "__group__", - "zOrder": "109", + "zOrder": "101", "measuredW": "30", "measuredH": "30", "w": "30", "h": "30", "x": "218", - "y": "1012", + "y": "961", "properties": { "controlName": "check:orm-queries" }, @@ -3144,13 +3113,13 @@ { "ID": "1808", "typeID": "__group__", - "zOrder": "110", + "zOrder": "102", "measuredW": "396", "measuredH": "28", "w": "396", "h": "28", "x": "262", - "y": "1013", + "y": "962", "properties": { "controlName": "orm-queries" }, @@ -3177,13 +3146,13 @@ { "ID": "1809", "typeID": "__group__", - "zOrder": "111", + "zOrder": "103", "measuredW": "30", "measuredH": "30", "w": "30", "h": "30", "x": "218", - "y": "1053", + "y": "1002", "properties": { "controlName": "check:lazy-eager" }, @@ -3208,13 +3177,13 @@ { "ID": "1810", "typeID": "__group__", - "zOrder": "112", + "zOrder": "104", "measuredW": "458", "measuredH": "59", "w": "458", "h": "59", "x": "262", - "y": "1054", + "y": "1003", "properties": { "controlName": "lazy-eager" }, @@ -3254,13 +3223,13 @@ { "ID": "1812", "typeID": "__group__", - "zOrder": "113", + "zOrder": "105", "measuredW": "30", "measuredH": "30", "w": "30", "h": "30", "x": "218", - "y": "1577", + "y": "1526", "properties": { "controlName": "check:profiling-tools" }, @@ -3285,13 +3254,13 @@ { "ID": "1813", "typeID": "__group__", - "zOrder": "114", + "zOrder": "106", "measuredW": "391", "measuredH": "28", "w": "391", "h": "28", "x": "262", - "y": "1578", + "y": "1527", "properties": { "controlName": "profiling-tools" }, @@ -3318,7 +3287,7 @@ { "ID": "1814", "typeID": "__group__", - "zOrder": "115", + "zOrder": "107", "measuredW": "30", "measuredH": "30", "w": "30", @@ -3349,7 +3318,7 @@ { "ID": "1815", "typeID": "__group__", - "zOrder": "116", + "zOrder": "108", "measuredW": "470", "measuredH": "60", "w": "470", @@ -3395,7 +3364,7 @@ { "ID": "1816", "typeID": "__group__", - "zOrder": "117", + "zOrder": "109", "measuredW": "30", "measuredH": "30", "w": "30", @@ -3426,7 +3395,7 @@ { "ID": "1817", "typeID": "__group__", - "zOrder": "118", + "zOrder": "110", "measuredW": "483", "measuredH": "59", "w": "483", @@ -3472,7 +3441,7 @@ { "ID": "1818", "typeID": "__group__", - "zOrder": "119", + "zOrder": "111", "measuredW": "30", "measuredH": "30", "w": "30", @@ -3503,7 +3472,7 @@ { "ID": "1819", "typeID": "__group__", - "zOrder": "120", + "zOrder": "112", "measuredW": "467", "measuredH": "59", "w": "467", @@ -3549,7 +3518,7 @@ { "ID": "1820", "typeID": "__group__", - "zOrder": "121", + "zOrder": "113", "measuredW": "30", "measuredH": "30", "w": "30", @@ -3580,7 +3549,7 @@ { "ID": "1821", "typeID": "__group__", - "zOrder": "122", + "zOrder": "114", "measuredW": "504", "measuredH": "28", "w": "504", @@ -3613,7 +3582,7 @@ { "ID": "1824", "typeID": "__group__", - "zOrder": "123", + "zOrder": "115", "measuredW": "30", "measuredH": "30", "w": "30", @@ -3644,7 +3613,7 @@ { "ID": "1825", "typeID": "__group__", - "zOrder": "124", + "zOrder": "116", "measuredW": "454", "measuredH": "28", "w": "454", @@ -3677,13 +3646,13 @@ { "ID": "1826", "typeID": "__group__", - "zOrder": "125", + "zOrder": "133", "measuredW": "30", "measuredH": "30", "w": "30", "h": "30", - "x": "855", - "y": "2094", + "x": "220", + "y": "2045", "properties": { "controlName": "check:keep-alive" }, @@ -3708,13 +3677,13 @@ { "ID": "1827", "typeID": "__group__", - "zOrder": "126", + "zOrder": "134", "measuredW": "500", "measuredH": "28", "w": "500", "h": "28", - "x": "900", - "y": "2096", + "x": "265", + "y": "2047", "properties": { "controlName": "keep-alive" }, @@ -3741,13 +3710,13 @@ { "ID": "1828", "typeID": "__group__", - "zOrder": "127", + "zOrder": "117", "measuredW": "30", "measuredH": "30", "w": "30", "h": "30", "x": "218", - "y": "864", + "y": "813", "properties": { "controlName": "check:connection-pool-settings" }, @@ -3772,13 +3741,13 @@ { "ID": "1830", "typeID": "__group__", - "zOrder": "129", + "zOrder": "119", "measuredW": "30", "measuredH": "30", "w": "30", "h": "30", "x": "218", - "y": "1204", + "y": "1153", "properties": { "controlName": "check:denormalize" }, @@ -3803,13 +3772,13 @@ { "ID": "1831", "typeID": "__group__", - "zOrder": "130", + "zOrder": "120", "measuredW": "528", "measuredH": "58", "w": "528", "h": "58", "x": "262", - "y": "1205", + "y": "1154", "properties": { "controlName": "denormalize" }, @@ -3849,13 +3818,13 @@ { "ID": "1832", "typeID": "__group__", - "zOrder": "131", + "zOrder": "135", "measuredW": "30", "measuredH": "30", "w": "30", "h": "30", - "x": "855", - "y": "2181", + "x": "220", + "y": "2132", "properties": { "controlName": "check:prefetch-preload" }, @@ -3880,13 +3849,13 @@ { "ID": "1833", "typeID": "__group__", - "zOrder": "132", + "zOrder": "136", "measuredW": "483", "measuredH": "63", "w": "483", "h": "63", - "x": "900", - "y": "2183", + "x": "265", + "y": "2134", "properties": { "controlName": "prefetch-preload" }, @@ -3926,13 +3895,13 @@ { "ID": "1834", "typeID": "Arrow", - "zOrder": "133", + "zOrder": "121", "w": "587", "h": "1", "measuredW": "150", "measuredH": "100", "x": "225", - "y": "1976", + "y": "1926", "properties": { "curvature": "0", "leftArrow": "false", @@ -3955,13 +3924,13 @@ { "ID": "1835", "typeID": "Canvas", - "zOrder": "134", - "w": "234", + "zOrder": "122", + "w": "297", "h": "50", "measuredW": "100", "measuredH": "70", - "x": "340", - "y": "1951", + "x": "959", + "y": "1948", "properties": { "color": "16776960" } @@ -3969,11 +3938,11 @@ { "ID": "1836", "typeID": "Label", - "zOrder": "135", + "zOrder": "123", "measuredW": "187", "measuredH": "28", - "x": "363", - "y": "1962", + "x": "1014", + "y": "1959", "properties": { "size": "20", "text": "Performance Testing" @@ -3982,13 +3951,13 @@ { "ID": "1837", "typeID": "__group__", - "zOrder": "136", + "zOrder": "124", "measuredW": "30", "measuredH": "30", "w": "30", "h": "30", - "x": "218", - "y": "2033", + "x": "850", + "y": "2031", "properties": { "controlName": "check:perf-testing" }, @@ -4013,13 +3982,13 @@ { "ID": "1838", "typeID": "__group__", - "zOrder": "137", + "zOrder": "125", "measuredW": "510", "measuredH": "89", "w": "510", "h": "89", - "x": "264", - "y": "2033", + "x": "896", + "y": "2030", "properties": { "controlName": "perf-testing" }, @@ -4072,12 +4041,12 @@ { "ID": "1841", "typeID": "Arrow", - "zOrder": "138", + "zOrder": "126", "w": "1", "h": "76", "measuredW": "150", "measuredH": "100", - "x": "201", + "x": "190", "y": "376", "properties": { "curvature": "0", @@ -4102,13 +4071,13 @@ { "ID": "1852", "typeID": "__group__", - "zOrder": "94", + "zOrder": "86", "measuredW": "483", "measuredH": "59", "w": "483", "h": "59", "x": "263", - "y": "1761", + "y": "1711", "properties": { "controlName": "authentication-authorization" }, @@ -4154,7 +4123,7 @@ "w": "505", "h": "58", "x": "264", - "y": "661", + "y": "589", "properties": { "controlName": "cache-invalidation" }, @@ -4191,62 +4160,16 @@ } } }, - { - "ID": "1864", - "typeID": "__group__", - "zOrder": "51", - "measuredW": "520", - "measuredH": "58", - "w": "520", - "h": "58", - "x": "264", - "y": "588", - "properties": { - "controlName": "caching-locations" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Label", - "zOrder": "0", - "measuredW": "488", - "measuredH": "28", - "x": "0", - "y": "0", - "properties": { - "size": "20", - "text": "Implement caching at various levels such as database" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "520", - "measuredH": "28", - "x": "0", - "y": "30", - "properties": { - "size": "20", - "text": "query results, HTML fragments, or even full-page caching." - } - } - ] - } - } - }, { "ID": "1868", "typeID": "__group__", - "zOrder": "128", + "zOrder": "118", "measuredW": "517", "measuredH": "89", "w": "517", "h": "89", "x": "261", - "y": "865", + "y": "814", "properties": { "controlName": "connection-pool-settings" }, @@ -4299,7 +4222,7 @@ { "ID": "1875", "typeID": "__group__", - "zOrder": "79", + "zOrder": "77", "measuredW": "427", "measuredH": "59", "w": "427", @@ -4352,10 +4275,10 @@ }, "branchID": "Master", "resourceID": "E62F7257-0C11-4024-8C48-67BDED6B975E", - "mockupH": "2352", - "mockupW": "1219", + "mockupH": "2282", + "mockupW": "1230", "measuredW": "1420", - "measuredH": "2486", + "measuredH": "2416", "version": "1.0" }, "groupOffset": { diff --git a/src/data/best-practices/backend-performance/backend-performance.md b/src/data/best-practices/backend-performance/backend-performance.md index a5cfa003a..a23cbff20 100644 --- a/src/data/best-practices/backend-performance/backend-performance.md +++ b/src/data/best-practices/backend-performance/backend-performance.md @@ -10,7 +10,7 @@ title: 'Backend Performance Best Practices' description: 'Detailed list of best practices to improve your backend performance' dimensions: width: 968 - height: 1860.38 + height: 1789.23 schema: headline: 'Backend Performance Best Practices' description: 'Detailed list of best practices to improve the backend performance of your website. Each best practice carries further details and how to implement that best practice.'