Diagram: WhatsApp · 106 elements
{
"type": "excalidraw",
"version": 2,
"source": "https://marketplace.visualstudio.com/items?itemName=pomdtr.excalidraw-editor",
"elements": [
{
"type": "text",
"version": 564,
"versionNonce": 1439624713,
"isDeleted": false,
"id": "VyJw-9UnVO85Ai-VUsjAZ",
"fillStyle": "cross-hatch",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 690.8715435729973,
"y": 66.90072842692177,
"strokeColor": "#000000",
"backgroundColor": "#fff",
"width": 665.927734375,
"height": 46,
"seed": 896043666,
"groupIds": [],
"frameId": null,
"roundness": null,
"boundElements": [],
"updated": 1767422651424,
"link": null,
"locked": false,
"fontSize": 36,
"fontFamily": 1,
"text": "Design Facebook Messenger/WhatsApp",
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "Design Facebook Messenger/WhatsApp",
"lineHeight": 1.2777777777777777,
"index": "a0",
"autoResize": true
},
{
"type": "text",
"version": 1941,
"versionNonce": 273945415,
"isDeleted": false,
"id": "iIdO4f73th-8rX4KYwiIm",
"fillStyle": "solid",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 0,
"opacity": 100,
"angle": 0,
"x": 264.75891966469817,
"y": 261.45353346486024,
"strokeColor": "#1e1e1e",
"backgroundColor": "#fefefe",
"width": 421.9797058105469,
"height": 175,
"seed": 700324174,
"groupIds": [],
"frameId": null,
"roundness": null,
"boundElements": [],
"updated": 1767422910292,
"link": null,
"locked": false,
"fontSize": 20,
"fontFamily": 5,
"text": "Functional Req\n- Support group chats with up to 10 users\n- Send/receive messages\n- Send/receive media\n- Persist messages so that users can\naccess them from other devices/load other\nconversations",
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "Functional Req\n- Support group chats with up to 10 users\n- Send/receive messages\n- Send/receive media\n- Persist messages so that users can\naccess them from other devices/load other\nconversations",
"lineHeight": 1.25,
"index": "a4",
"autoResize": true
},
{
"type": "text",
"version": 5743,
"versionNonce": 1675731625,
"isDeleted": false,
"id": "es-dVSBh_mMs5UJW248CZ",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 1420.319190677082,
"y": 248.8922723688779,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"width": 451.13970947265625,
"height": 156,
"seed": 887144462,
"groupIds": [],
"frameId": null,
"roundness": null,
"boundElements": [],
"updated": 1767422711742,
"link": null,
"locked": false,
"fontSize": 20,
"fontFamily": 1,
"text": "Back of Envelope Cal\n1. 1 bil total users\n2. Each user sends 100 messages a day\n3. Each message is around 100 bytes\n4. 1 bil * 100 msgs * 100 bytes = 10^13 bytes\n= 10 TB",
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "Back of Envelope Cal\n1. 1 bil total users\n2. Each user sends 100 messages a day\n3. Each message is around 100 bytes\n4. 1 bil * 100 msgs * 100 bytes = 10^13 bytes\n= 10 TB",
"lineHeight": 1.3,
"index": "a6",
"autoResize": true
},
{
"type": "text",
"version": 2211,
"versionNonce": 1660537062,
"isDeleted": false,
"id": "lx2X8KGWP_0yUt_7O-27Z",
"fillStyle": "solid",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 0,
"opacity": 100,
"angle": 0,
"x": 264.5873660976803,
"y": 539.8310297536218,
"strokeColor": "#1e1e1e",
"backgroundColor": "#fefefe",
"width": 723.579345703125,
"height": 832,
"seed": 1083723858,
"groupIds": [],
"frameId": null,
"roundness": null,
"boundElements": [],
"updated": 1767161171988,
"link": null,
"locked": false,
"fontSize": 20,
"fontFamily": 1,
"text": "Chat Members Database\n\nWe should be able to fetch all chats for a given\nuser.\n-> Recall left pane of initial diagram\n-> Want all chatIds for given user to be on same shard, next\nto each other on disk\n\nuserId | chat Id\n3 | 12\n3 | 19\n10 | 12\n10 | 65\n\nAvoid causal dependency write conflict of adding/removing a user\nfrom a chat. Let's use single leader replication\n\nThis DB likely not a performance bottleneck, let's just use MySQL\n\nUsers Database\n\nSchema -> userId, email, passwordHash\n\npartition on userId <- hash range\n\nWhile this table will have a lot of rows, it is also unlikely to be\na bottleneck as it wil not be written to or read from nearly as much as\nour messages table will. Can also stick to MySQL here\n\n\n\n",
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "Chat Members Database\n\nWe should be able to fetch all chats for a given\nuser.\n-> Recall left pane of initial diagram\n-> Want all chatIds for given user to be on same shard, next\nto each other on disk\n\nuserId | chat Id\n3 | 12\n3 | 19\n10 | 12\n10 | 65\n\nAvoid causal dependency write conflict of adding/removing a user\nfrom a chat. Let's use single leader replication\n\nThis DB likely not a performance bottleneck, let's just use MySQL\n\nUsers Database\n\nSchema -> userId, email, passwordHash\n\npartition on userId <- hash range\n\nWhile this table will have a lot of rows, it is also unlikely to be\na bottleneck as it wil not be written to or read from nearly as much as\nour messages table will. Can also stick to MySQL here\n\n\n\n",
"lineHeight": 1.3,
"index": "aF",
"autoResize": true
},
{
"type": "text",
"version": 2952,
"versionNonce": 1451501882,
"isDeleted": false,
"id": "fIfpwytlFPqBfGKoOa7wC",
"fillStyle": "solid",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 0,
"opacity": 100,
"angle": 0,
"x": 248.05891105587102,
"y": 1291.001523305962,
"strokeColor": "#1e1e1e",
"backgroundColor": "#fefefe",
"width": 787.5993041992188,
"height": 884,
"seed": 278563726,
"groupIds": [],
"frameId": null,
"roundness": null,
"boundElements": [],
"updated": 1767161212492,
"link": null,
"locked": false,
"fontSize": 20,
"fontFamily": 1,
"text": "Messages table\n\nWe want to make sure that getting all the messages for a given chat\nis fast!\n\nSchema: chatId (partition key), timestamp (sort key), message, metadata\n 2 1000 \"Hiii\" From: Joe\n 2 1003 \"Yoo\" From: Jack\n\nMessages for chat already on same partition and pre-sorted!\nTimestamps ensure consistent ordering on all devices (order by TS on frontend)\n\nWhat should we optimize for?\n\nReads -> B-tree index, column oriented storage? (HBase)\n\nWrites -> LSM tree index, leader less replication (Cassandra?)\n\nMaybe we can get the benefits of HBase without having to worry about write\nthroughput!\n\nIt would be great to be able to read messages from HBase\nWhile being able to quickly ingest them in our system!\n-> We can use stream processing\n\nMessage Delivery\nClient -> Message service (Assign UUID) -> Kafka (partitioned on chatId)\n-> Flink (partition on chatId) -> upsert to HBase (partitioned on chatId)\n\nMessage Routing\nTo minimize load on client devices we want them to maintain as few active\nconnections as possible\n-> Each user can just maintain a connection with one chat server\n-> Chats at most have to be sent to 10 different places",
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "Messages table\n\nWe want to make sure that getting all the messages for a given chat\nis fast!\n\nSchema: chatId (partition key), timestamp (sort key), message, metadata\n 2 1000 \"Hiii\" From: Joe\n 2 1003 \"Yoo\" From: Jack\n\nMessages for chat already on same partition and pre-sorted!\nTimestamps ensure consistent ordering on all devices (order by TS on frontend)\n\nWhat should we optimize for?\n\nReads -> B-tree index, column oriented storage? (HBase)\n\nWrites -> LSM tree index, leader less replication (Cassandra?)\n\nMaybe we can get the benefits of HBase without having to worry about write\nthroughput!\n\nIt would be great to be able to read messages from HBase\nWhile being able to quickly ingest them in our system!\n-> We can use stream processing\n\nMessage Delivery\nClient -> Message service (Assign UUID) -> Kafka (partitioned on chatId)\n-> Flink (partition on chatId) -> upsert to HBase (partitioned on chatId)\n\nMessage Routing\nTo minimize load on client devices we want them to maintain as few active\nconnections as possible\n-> Each user can just maintain a connection with one chat server\n-> Chats at most have to be sent to 10 different places",
"lineHeight": 1.3,
"index": "aK",
"autoResize": true
},
{
"type": "text",
"version": 1014,
"versionNonce": 1747204902,
"isDeleted": false,
"id": "MRV16jbnCUJPBXMX5Q_93",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 243.64437384467692,
"y": 2183.857833689086,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"width": 754.7794189453125,
"height": 450,
"seed": 512095950,
"groupIds": [],
"frameId": null,
"roundness": null,
"boundElements": [],
"updated": 1767161232781,
"link": null,
"locked": false,
"fontSize": 20,
"fontFamily": 1,
"text": "Connection to Chat Servers\n\nWe need to reliably know the function to connect a given userId to\na server for:\n-> Sending messages\n-> Receiving messages\n\nUse consistent hashing/ZooKeeper for load balancers\n\nwhat if a server goes down? Can have server send occasional heartbeat to\nclient and zookeeper.\n-> Server goes down -> update consistent hashing function\n-> Clients try to reconnect through LB on random interval (jitter)\n -> Avoid thundering herd\n\nReal time bi-directional communication -> use WebSockets likely\n\n",
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "Connection to Chat Servers\n\nWe need to reliably know the function to connect a given userId to\na server for:\n-> Sending messages\n-> Receiving messages\n\nUse consistent hashing/ZooKeeper for load balancers\n\nwhat if a server goes down? Can have server send occasional heartbeat to\nclient and zookeeper.\n-> Server goes down -> update consistent hashing function\n-> Clients try to reconnect through LB on random interval (jitter)\n -> Avoid thundering herd\n\nReal time bi-directional communication -> use WebSockets likely\n\n",
"lineHeight": 1.25,
"index": "aP",
"autoResize": true
},
{
"type": "text",
"version": 1112,
"versionNonce": 559868743,
"isDeleted": false,
"id": "kRDn7UAUkBYcCjNbIccNN",
"fillStyle": "cross-hatch",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 1737.9260000610666,
"y": 814.4124185916497,
"strokeColor": "#000000",
"backgroundColor": "#7950f2",
"width": 36.5035400390625,
"height": 20.425981820163486,
"seed": 2075523538,
"groupIds": [
"7W9BlsS3du1eaDKo7eih6",
"k1p0VxrNYKBe0CG-qeLcP"
],
"frameId": null,
"roundness": null,
"boundElements": [],
"updated": 1767426058552,
"link": null,
"locked": false,
"fontSize": 16.34078545613079,
"fontFamily": 1,
"text": "User",
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "User",
"lineHeight": 1.25,
"index": "aQ",
"autoResize": true
},
{
"type": "ellipse",
"version": 1020,
"versionNonce": 286255719,
"isDeleted": false,
"id": "xNpYZvE7xIxlAbYR3fgNu",
"fillStyle": "cross-hatch",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 0,
"opacity": 100,
"angle": 0,
"x": 1741.7418352597292,
"y": 843.5150000794393,
"strokeColor": "#000000",
"backgroundColor": "#ced4da",
"width": 30.70102704639993,
"height": 30.70102704639993,
"seed": 1379594130,
"groupIds": [
"gPjwpLxZ5tnM5FAV-YoQh",
"k1p0VxrNYKBe0CG-qeLcP"
],
"frameId": null,
"roundness": null,
"boundElements": [],
"updated": 1767426058552,
"link": null,
"locked": false,
"index": "aR"
},
{
"type": "line",
"version": 1329,
"versionNonce": 1553204615,
"isDeleted": false,
"id": "8w0fomsHqUyL0ecEN1dVU",
"fillStyle": "cross-hatch",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 0,
"opacity": 100,
"angle": 0,
"x": 1770.2971045996019,
"y": 916.1467423267858,
"strokeColor": "#000000",
"backgroundColor": "#ced4da",
"width": 29.216935357974613,
"height": 37.13493212275114,
"seed": 1781074,
"groupIds": [
"gPjwpLxZ5tnM5FAV-YoQh",
"k1p0VxrNYKBe0CG-qeLcP"
],
"frameId": null,
"roundness": {
"type": 2
},
"boundElements": [],
"updated": 1767426058552,
"link": null,
"locked": false,
"startBinding": null,
"endBinding": null,
"lastCommittedPoint": null,
"startArrowhead": null,
"endArrowhead": null,
"points": [
[
0,
0
],
[
1.1686774143189838,
-26.21289326311846
],
[
-3.506032242956957,
-34.950524350824594
],
[
-16.945822507625277,
-37.13493212275114
],
[
-26.879580529336646,
-30.581708806971534
],
[
-28.048257943655628,
-0.7281359239755113
],
[
0,
0
]
],
"index": "aS"
},
{
"type": "arrow",
"version": 2269,
"versionNonce": 1019584041,
"isDeleted": false,
"id": "DYvIEj3zx1s5CbRAveRiC",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 1780.57980100754,
"y": 895.4115555688464,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"width": 111.77686370538231,
"height": 3.9892556655020144,
"seed": 184787790,
"groupIds": [],
"frameId": null,
"roundness": {
"type": 2
},
"boundElements": [],
"updated": 1767426058645,
"link": null,
"locked": false,
"startBinding": null,
"endBinding": {
"elementId": "oec8j6ovc-AMuJEJnDJOm",
"focus": -0.1022169566915012,
"gap": 11.03063563862952
},
"lastCommittedPoint": null,
"startArrowhead": "arrow",
"endArrowhead": "arrow",
"points": [
[
0,
0
],
[
111.77686370538231,
3.9892556655020144
]
],
"index": "ak"
},
{
"type": "rectangle",
"version": 540,
"versionNonce": 678924231,
"isDeleted": false,
"id": "uTi1Jwv8dNMPIEoe7pmkU",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 2139.9316127002,
"y": 888.5609738648842,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 96.6723420832425,
"height": 97.8021542026703,
"seed": 117651026,
"groupIds": [],
"frameId": null,
"roundness": null,
"boundElements": [],
"updated": 1767426058552,
"link": null,
"locked": false,
"index": "b0a"
},
{
"type": "rectangle",
"version": 481,
"versionNonce": 1721761511,
"isDeleted": false,
"id": "jdrlfhspDglzH37eOQumN",
"fillStyle": "solid",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 2133.923028647538,
"y": 881.2157675730979,
"strokeColor": "#000000",
"backgroundColor": "#fff",
"width": 96.6723420832425,
"height": 97.8021542026703,
"seed": 1772919826,
"groupIds": [],
"frameId": null,
"roundness": null,
"boundElements": [
{
"id": "HL0VZQIX669Id_MkZDa_h",
"type": "arrow"
}
],
"updated": 1767426058552,
"link": null,
"locked": false,
"index": "b0b"
},
{
"type": "rectangle",
"version": 557,
"versionNonce": 903416841,
"isDeleted": false,
"id": "NYw9QB4tBJcCAPcH9kWMY",
"fillStyle": "solid",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 2126.374990053056,
"y": 873.2879333791469,
"strokeColor": "#000000",
"backgroundColor": "#fff",
"width": 96.6723420832425,
"height": 97.8021542026703,
"seed": 94587346,
"groupIds": [],
"frameId": null,
"roundness": null,
"boundElements": [
{
"id": "NJdZ-E_1veTBZ_HbWO1ea",
"type": "arrow"
},
{
"type": "text",
"id": "a_a7h3lhudIS7EdkLb7fm"
},
{
"id": "zH2o3sKijkXbNpFz4wfT_",
"type": "arrow"
},
{
"id": "hpzwcReRbN5X6t0xNUsU8",
"type": "arrow"
}
],
"updated": 1767426079430,
"link": null,
"locked": false,
"index": "b0c"
},
{
"type": "text",
"version": 385,
"versionNonce": 1708782663,
"isDeleted": false,
"id": "a_a7h3lhudIS7EdkLb7fm",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 2147.1292748031733,
"y": 901.7630286603186,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"width": 55.16377258300781,
"height": 40.85196364032697,
"seed": 1385162834,
"groupIds": [],
"frameId": null,
"roundness": null,
"boundElements": [],
"updated": 1767426058552,
"link": null,
"locked": false,
"fontSize": 16.34078545613079,
"fontFamily": 1,
"text": "Chat \nService",
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "NYw9QB4tBJcCAPcH9kWMY",
"originalText": "Chat Service",
"lineHeight": 1.25,
"index": "b0d",
"autoResize": true
},
{
"type": "arrow",
"version": 1098,
"versionNonce": 120645609,
"isDeleted": false,
"id": "NJdZ-E_1veTBZ_HbWO1ea",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 2034.1158681216343,
"y": 916.608897560417,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"width": 85.11493014222333,
"height": 4.953810843609062,
"seed": 183494994,
"groupIds": [],
"frameId": null,
"roundness": {
"type": 2
},
"boundElements": [],
"updated": 1767426058645,
"link": null,
"locked": false,
"startBinding": {
"elementId": "oec8j6ovc-AMuJEJnDJOm",
"focus": 0.15525030110827426,
"gap": 10.563272529257574
},
"endBinding": {
"elementId": "NYw9QB4tBJcCAPcH9kWMY",
"focus": -0.05032909516633146,
"gap": 7.14419178919843
},
"lastCommittedPoint": null,
"startArrowhead": "arrow",
"endArrowhead": "arrow",
"points": [
[
0,
0
],
[
85.11493014222333,
4.953810843609062
]
],
"index": "b0e"
},
{
"type": "arrow",
"version": 1141,
"versionNonce": 388284841,
"isDeleted": false,
"id": "zH2o3sKijkXbNpFz4wfT_",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 2246.6702162531833,
"y": 918.2467883001458,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"width": 128.61872895993156,
"height": 0.16460540931643663,
"seed": 2107516754,
"groupIds": [],
"frameId": null,
"roundness": {
"type": 2
},
"boundElements": [],
"updated": 1767426058645,
"link": null,
"locked": false,
"startBinding": {
"elementId": "NYw9QB4tBJcCAPcH9kWMY",
"focus": -0.07863354722143676,
"gap": 23.622884116884507
},
"endBinding": {
"elementId": "msMlLC8TaWx1tLX9KLjoC",
"focus": 0.2689588687805214,
"gap": 18.112689431988656
},
"lastCommittedPoint": null,
"startArrowhead": "arrow",
"endArrowhead": "arrow",
"points": [
[
0,
0
],
[
128.61872895993156,
-0.16460540931643663
]
],
"index": "b0l"
},
{
"type": "arrow",
"version": 223,
"versionNonce": 678664230,
"isDeleted": false,
"id": "ycob7oF-X4j3-heM_WUL-",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 3430.993705801723,
"y": 1732.371645396611,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"width": 0,
"height": 0,
"seed": 663972818,
"groupIds": [],
"frameId": null,
"roundness": {
"type": 2
},
"boundElements": [],
"updated": 1767161171988,
"link": null,
"locked": false,
"startBinding": null,
"endBinding": null,
"lastCommittedPoint": null,
"startArrowhead": null,
"endArrowhead": "arrow",
"points": [
[
0,
0
],
[
0,
0
]
],
"index": "b0p"
},
{
"type": "text",
"version": 805,
"versionNonce": 973855271,
"isDeleted": false,
"id": "WCkzE3-njnGijdiA5yxeO",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 0,
"opacity": 100,
"angle": 0,
"x": 2579.5454827857366,
"y": 927.9580756793299,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"width": 150.40350341796875,
"height": 21.57897923836773,
"seed": 234697102,
"groupIds": [],
"frameId": null,
"roundness": null,
"boundElements": [],
"updated": 1767426058552,
"link": null,
"locked": false,
"fontSize": 17.263183390694184,
"fontFamily": 1,
"text": "partion by chatId",
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "partion by chatId",
"lineHeight": 1.25,
"index": "b1K",
"autoResize": true
},
{
"id": "aQakBLNqMHYP3o6UbrnrK",
"type": "text",
"x": 841.7823365736658,
"y": 264.83135724678965,
"width": 400.2197265625,
"height": 150,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b1O",
"roundness": null,
"seed": 192259194,
"version": 336,
"versionNonce": 318432359,
"isDeleted": false,
"boundElements": [],
"updated": 1767422956250,
"link": null,
"locked": false,
"text": "Non-Functional Requirements\n- Scale: billions of users, high throughput\n- Delivered with low-latency < 500ms\n- Guarantee delivery messages\n- Messages not stored unnecessarily\nFault-tolerant",
"fontSize": 20,
"fontFamily": 5,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "Non-Functional Requirements\n- Scale: billions of users, high throughput\n- Delivered with low-latency < 500ms\n- Guarantee delivery messages\n- Messages not stored unnecessarily\nFault-tolerant",
"autoResize": true,
"lineHeight": 1.25
},
{
"id": "Kx8NS07zJ-19vRmt790Qc",
"type": "text",
"x": 1114.8318768267836,
"y": 571.1085759935859,
"width": 129.29991149902344,
"height": 150,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b1P",
"roundness": null,
"seed": 783439930,
"version": 199,
"versionNonce": 299268329,
"isDeleted": false,
"boundElements": [],
"updated": 1767422964842,
"link": null,
"locked": false,
"text": "Core Entities\n\nUser\nChat\nMessagees\nClient",
"fontSize": 20,
"fontFamily": 5,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "Core Entities\n\nUser\nChat\nMessagees\nClient",
"autoResize": true,
"lineHeight": 1.25
},
{
"id": "MAugnXL-R_ap0dpZmKtsF",
"type": "text",
"x": 2101.648300085543,
"y": 255.8663166922248,
"width": 186.87986755371094,
"height": 150,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b1Q",
"roundness": null,
"seed": 671385703,
"version": 138,
"versionNonce": 416628711,
"isDeleted": false,
"boundElements": [],
"updated": 1767423564727,
"link": null,
"locked": false,
"text": "Commands Sent\n\ncreateChat\nsendMessage\ncreateAttachement\nmodifyParticipants",
"fontSize": 20,
"fontFamily": 5,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "Commands Sent\n\ncreateChat\nsendMessage\ncreateAttachement\nmodifyParticipants",
"autoResize": true,
"lineHeight": 1.25
},
{
"id": "lwkNiZcDo4EcICOlaH43H",
"type": "text",
"x": 2427.6183142507375,
"y": 261.54164038524704,
"width": 188.599853515625,
"height": 100,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b1R",
"roundness": null,
"seed": 164136583,
"version": 183,
"versionNonce": 1007856391,
"isDeleted": false,
"boundElements": [],
"updated": 1767423564727,
"link": null,
"locked": false,
"text": "Commands Received\n\nnewMessage\nchatUpdate",
"fontSize": 20,
"fontFamily": 5,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "Commands Received\n\nnewMessage\nchatUpdate",
"autoResize": true,
"lineHeight": 1.25
},
{
"id": "59XaRRkLvrD2mXvr7hErv",
"type": "text",
"x": 2504.0511130195023,
"y": 1010.1481308330091,
"width": 154.75987243652344,
"height": 200,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b1S",
"roundness": null,
"seed": 1371300999,
"version": 337,
"versionNonce": 670825799,
"isDeleted": false,
"boundElements": [],
"updated": 1767426058552,
"link": null,
"locked": false,
"text": "Chat\n- id\n- name\n- metadata\n\nChatParticipant\n- chatId\n- participantId",
"fontSize": 20,
"fontFamily": 5,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "Chat\n- id\n- name\n- metadata\n\nChatParticipant\n- chatId\n- participantId",
"autoResize": true,
"lineHeight": 1.25
},
{
"id": "kY1jOwe53yBnJWvTmuWNq",
"type": "text",
"x": 2121.394712603572,
"y": 1013.1430535873498,
"width": 122.43991088867188,
"height": 50,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b1T",
"roundness": null,
"seed": 2059171337,
"version": 81,
"versionNonce": 1874668393,
"isDeleted": false,
"boundElements": [
{
"id": "HL0VZQIX669Id_MkZDa_h",
"type": "arrow"
}
],
"updated": 1767426058646,
"link": null,
"locked": false,
"text": "clientA: WS1\nclientB: WS2",
"fontSize": 20,
"fontFamily": 5,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "clientA: WS1\nclientB: WS2",
"autoResize": true,
"lineHeight": 1.25
},
{
"id": "msMlLC8TaWx1tLX9KLjoC",
"type": "rectangle",
"x": 2393.4016346451035,
"y": 880.5627031588075,
"width": 157.0085861851885,
"height": 102.3823433592247,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b1V",
"roundness": {
"type": 3
},
"seed": 997749319,
"version": 117,
"versionNonce": 1754568583,
"isDeleted": false,
"boundElements": [
{
"type": "text",
"id": "m-DhMLKB-iLoxM3yQm9_0"
},
{
"id": "zH2o3sKijkXbNpFz4wfT_",
"type": "arrow"
}
],
"updated": 1767426058552,
"link": null,
"locked": false
},
{
"id": "m-DhMLKB-iLoxM3yQm9_0",
"type": "text",
"x": 2411.31596954678,
"y": 906.7538748384198,
"width": 121.17991638183594,
"height": 50,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b1W",
"roundness": null,
"seed": 1566593417,
"version": 98,
"versionNonce": 1967525543,
"isDeleted": false,
"boundElements": [],
"updated": 1767426058552,
"link": null,
"locked": false,
"text": "Database\n(DynamoDB)",
"fontSize": 20,
"fontFamily": 5,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "msMlLC8TaWx1tLX9KLjoC",
"originalText": "Database (DynamoDB)",
"autoResize": true,
"lineHeight": 1.25
},
{
"id": "qyUud_BbyFcKU3A__quIZ",
"type": "ellipse",
"x": 2342.243952517054,
"y": 1105.5598632448355,
"width": 92.07712992017014,
"height": 94.04822924091764,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b1X",
"roundness": {
"type": 2
},
"seed": 989411335,
"version": 88,
"versionNonce": 248631527,
"isDeleted": false,
"boundElements": [
{
"type": "text",
"id": "nHpSJleptXfFXywb6qPb_"
},
{
"id": "HL0VZQIX669Id_MkZDa_h",
"type": "arrow"
},
{
"id": "r99_EkgiRvEDsPnaPKMwm",
"type": "arrow"
}
],
"updated": 1767426058552,
"link": null,
"locked": false
},
{
"id": "nHpSJleptXfFXywb6qPb_",
"type": "text",
"x": 2366.818347594445,
"y": 1127.8329075378747,
"width": 42.819976806640625,
"height": 50,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b1Y",
"roundness": null,
"seed": 163069897,
"version": 50,
"versionNonce": 1179982855,
"isDeleted": false,
"boundElements": [],
"updated": 1767426058552,
"link": null,
"locked": false,
"text": "Blob\nS3",
"fontSize": 20,
"fontFamily": 5,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "qyUud_BbyFcKU3A__quIZ",
"originalText": "Blob S3",
"autoResize": true,
"lineHeight": 1.25
},
{
"id": "HL0VZQIX669Id_MkZDa_h",
"type": "arrow",
"x": 2243.602870489928,
"y": 987.2939039999738,
"width": 113.38605315951509,
"height": 121.08865001971867,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b1Z",
"roundness": {
"type": 2
},
"seed": 1748352009,
"version": 177,
"versionNonce": 1807078985,
"isDeleted": false,
"boundElements": [],
"updated": 1767426058646,
"link": null,
"locked": false,
"points": [
[
0,
0
],
[
113.38605315951509,
121.08865001971867
]
],
"lastCommittedPoint": null,
"startBinding": {
"elementId": "kY1jOwe53yBnJWvTmuWNq",
"focus": 0,
"gap": 14
},
"endBinding": {
"elementId": "qyUud_BbyFcKU3A__quIZ",
"focus": 0.1120902022039879,
"gap": 7.468330530689327
},
"startArrowhead": "arrow",
"endArrowhead": "arrow",
"elbowed": false
},
{
"id": "r99_EkgiRvEDsPnaPKMwm",
"type": "arrow",
"x": 1767.6876374057106,
"y": 918.984787248431,
"width": 565.8968739206798,
"height": 430.723475356589,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b1a",
"roundness": {
"type": 2
},
"seed": 637936615,
"version": 195,
"versionNonce": 2098603305,
"isDeleted": false,
"boundElements": [],
"updated": 1767426058646,
"link": null,
"locked": false,
"points": [
[
0,
0
],
[
130.35568736022424,
430.723475356589
],
[
565.8968739206798,
224.0738053071334
]
],
"lastCommittedPoint": null,
"startBinding": null,
"endBinding": {
"elementId": "qyUud_BbyFcKU3A__quIZ",
"focus": 0.5151568332530295,
"gap": 9.454322545988353
},
"startArrowhead": "arrow",
"endArrowhead": "arrow",
"elbowed": false
},
{
"id": "LyW0KU65NJz8SHRpMRKK6",
"type": "text",
"x": 2777.282795804015,
"y": 993.6425661325771,
"width": 113.59991455078125,
"height": 125,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b1b",
"roundness": null,
"seed": 1833678633,
"version": 110,
"versionNonce": 803190695,
"isDeleted": false,
"boundElements": [],
"updated": 1767426058552,
"link": null,
"locked": false,
"text": "Messages\n- id\n- contents\n- creatorId\n- timestamp",
"fontSize": 20,
"fontFamily": 5,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "Messages\n- id\n- contents\n- creatorId\n- timestamp",
"autoResize": true,
"lineHeight": 1.25
},
{
"id": "2X0ASKKp_Rud7mTXlHWjw",
"type": "text",
"x": 2767.5277678549755,
"y": 1139.8435956052194,
"width": 120.69989013671875,
"height": 75,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b1c",
"roundness": null,
"seed": 1185354313,
"version": 96,
"versionNonce": 1115171527,
"isDeleted": false,
"boundElements": [],
"updated": 1767426058552,
"link": null,
"locked": false,
"text": "Inbox\n- recipientId\n- messageId",
"fontSize": 20,
"fontFamily": 5,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "Inbox\n- recipientId\n- messageId",
"autoResize": true,
"lineHeight": 1.25
},
{
"id": "oec8j6ovc-AMuJEJnDJOm",
"type": "rectangle",
"x": 1903.3873003515519,
"y": 689.0072524223611,
"width": 120.16529524082489,
"height": 385.9718660209728,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b1d",
"roundness": {
"type": 3
},
"seed": 63945927,
"version": 84,
"versionNonce": 1565173671,
"isDeleted": false,
"boundElements": [
{
"id": "DYvIEj3zx1s5CbRAveRiC",
"type": "arrow"
},
{
"id": "NJdZ-E_1veTBZ_HbWO1ea",
"type": "arrow"
}
],
"updated": 1767426077702,
"link": null,
"locked": false
},
{
"id": "DkM_K-cgcdGYVfAc1pcKL",
"type": "text",
"x": 1929.0881390677087,
"y": 794.2218549997477,
"width": 77.699951171875,
"height": 75,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b1e",
"roundness": null,
"seed": 467829927,
"version": 96,
"versionNonce": 578915943,
"isDeleted": false,
"boundElements": [],
"updated": 1767426058552,
"link": null,
"locked": false,
"text": "API GW\n\nLB",
"fontSize": 20,
"fontFamily": 5,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "API GW\n\nLB",
"autoResize": true,
"lineHeight": 1.25
},
{
"id": "Jr1GdBjhgSNAqQekjp5eK",
"type": "text",
"x": 1913.108838749027,
"y": 1100.746936262622,
"width": 184.7998504638672,
"height": 50,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b1f",
"roundness": null,
"seed": 1109260743,
"version": 67,
"versionNonce": 405875079,
"isDeleted": false,
"boundElements": [],
"updated": 1767426058552,
"link": null,
"locked": false,
"text": "Layer 4 \n(Least Connection)",
"fontSize": 20,
"fontFamily": 5,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "Layer 4 \n(Least Connection)",
"autoResize": true,
"lineHeight": 1.25
},
{
"id": "XXObn8KyDCdqUWdbf-THR",
"type": "rectangle",
"x": 2640.133513697526,
"y": 717.0045175316201,
"width": 174.46621099443246,
"height": 62.486719000693256,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b1g",
"roundness": {
"type": 3
},
"seed": 1021396327,
"version": 186,
"versionNonce": 1736466599,
"isDeleted": false,
"boundElements": [
{
"type": "text",
"id": "N_AwFUhiG5nchEeGbt8e2"
},
{
"id": "hpzwcReRbN5X6t0xNUsU8",
"type": "arrow"
}
],
"updated": 1767426058552,
"link": null,
"locked": false
},
{
"id": "N_AwFUhiG5nchEeGbt8e2",
"type": "text",
"x": 2700.216648186441,
"y": 735.7478770319666,
"width": 54.29994201660156,
"height": 25,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b1h",
"roundness": null,
"seed": 1099344393,
"version": 154,
"versionNonce": 1914418119,
"isDeleted": false,
"boundElements": [],
"updated": 1767426058552,
"link": null,
"locked": false,
"text": "kafka",
"fontSize": 20,
"fontFamily": 5,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "XXObn8KyDCdqUWdbf-THR",
"originalText": "kafka",
"autoResize": true,
"lineHeight": 1.25
},
{
"id": "hpzwcReRbN5X6t0xNUsU8",
"type": "arrow",
"x": 2235.000349177233,
"y": 870.3166645578114,
"width": 397.9919164937919,
"height": 127.63348351984382,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b1i",
"roundness": {
"type": 2
},
"seed": 56287239,
"version": 266,
"versionNonce": 1414246121,
"isDeleted": false,
"boundElements": [],
"updated": 1767426058646,
"link": null,
"locked": false,
"points": [
[
0,
0
],
[
397.9919164937919,
-127.63348351984382
]
],
"lastCommittedPoint": null,
"startBinding": {
"elementId": "NYw9QB4tBJcCAPcH9kWMY",
"focus": -0.5052311173271741,
"gap": 12.316779400050484
},
"endBinding": {
"elementId": "XXObn8KyDCdqUWdbf-THR",
"focus": 0.6050469854590081,
"gap": 7.141248026500762
},
"startArrowhead": "arrow",
"endArrowhead": "arrow",
"elbowed": false
},
{
"id": "Fz7CHT8wBzm_iYHLvR0qr",
"type": "text",
"x": 2669.6808666221314,
"y": 686.5338098281198,
"width": 48.75996398925781,
"height": 25,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b1j",
"roundness": null,
"seed": 622042345,
"version": 189,
"versionNonce": 50550055,
"isDeleted": false,
"boundElements": [],
"updated": 1767426058552,
"link": null,
"locked": false,
"text": "topic",
"fontSize": 20,
"fontFamily": 5,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "topic",
"autoResize": true,
"lineHeight": 1.25
},
{
"id": "VkN-7IIOiXHy5nuLO-v0u",
"type": "text",
"x": 2676.905041317105,
"y": 649.3077811515717,
"width": 90.89997863769531,
"height": 25,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b1k",
"roundness": null,
"seed": 2011197735,
"version": 125,
"versionNonce": 2051807303,
"isDeleted": false,
"boundElements": [],
"updated": 1767426058552,
"link": null,
"locked": false,
"text": "Not good",
"fontSize": 20,
"fontFamily": 5,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "Not good",
"autoResize": true,
"lineHeight": 1.25
},
{
"id": "Exgorpxfx7_6i73Fj7D5x",
"type": "text",
"x": 1589.4513743133657,
"y": 2305.2771908126992,
"width": 78.93992614746094,
"height": 75,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b1s",
"roundness": null,
"seed": 1633120841,
"version": 82,
"versionNonce": 65305545,
"isDeleted": false,
"boundElements": [],
"updated": 1767426189805,
"link": null,
"locked": false,
"text": "3 Hybrid\n\n",
"fontSize": 20,
"fontFamily": 5,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "3 Hybrid\n\n",
"autoResize": true,
"lineHeight": 1.25
},
{
"type": "text",
"version": 1108,
"versionNonce": 1090367559,
"isDeleted": false,
"id": "b2OcqjZrLpbYk2ZEdHuJi",
"fillStyle": "cross-hatch",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 1817.8742582735558,
"y": 2464.851096305209,
"strokeColor": "#000000",
"backgroundColor": "#7950f2",
"width": 36.5035400390625,
"height": 20.425981820163486,
"seed": 2130325959,
"groupIds": [
"L8d5U1MphcN0ELNAUorpL",
"OMyWwVGcZNjnJb9Ld2V8V"
],
"frameId": null,
"roundness": null,
"boundElements": [],
"updated": 1767426023670,
"link": null,
"locked": false,
"fontSize": 16.34078545613079,
"fontFamily": 1,
"text": "User",
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "User",
"lineHeight": 1.25,
"index": "b1t",
"autoResize": true
},
{
"type": "ellipse",
"version": 1016,
"versionNonce": 982388583,
"isDeleted": false,
"id": "7X6FUX-bLmSS0T8Nm6_0T",
"fillStyle": "cross-hatch",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 0,
"opacity": 100,
"angle": 0,
"x": 1821.6900934722185,
"y": 2493.953677792999,
"strokeColor": "#000000",
"backgroundColor": "#ced4da",
"width": 30.70102704639993,
"height": 30.70102704639993,
"seed": 1484677351,
"groupIds": [
"y9hNfQIgSaoY-W6n9T7s-",
"OMyWwVGcZNjnJb9Ld2V8V"
],
"frameId": null,
"roundness": null,
"boundElements": [],
"updated": 1767426023670,
"link": null,
"locked": false,
"index": "b1u"
},
{
"type": "line",
"version": 1325,
"versionNonce": 1560644231,
"isDeleted": false,
"id": "EFT28vaVZSXwJw9ydeKs8",
"fillStyle": "cross-hatch",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 0,
"opacity": 100,
"angle": 0,
"x": 1850.2453628120911,
"y": 2566.585420040345,
"strokeColor": "#000000",
"backgroundColor": "#ced4da",
"width": 29.216935357974613,
"height": 37.13493212275114,
"seed": 1273998343,
"groupIds": [
"y9hNfQIgSaoY-W6n9T7s-",
"OMyWwVGcZNjnJb9Ld2V8V"
],
"frameId": null,
"roundness": {
"type": 2
},
"boundElements": [],
"updated": 1767426023670,
"link": null,
"locked": false,
"startBinding": null,
"endBinding": null,
"lastCommittedPoint": null,
"startArrowhead": null,
"endArrowhead": null,
"points": [
[
0,
0
],
[
1.1686774143189838,
-26.21289326311846
],
[
-3.506032242956957,
-34.950524350824594
],
[
-16.945822507625277,
-37.13493212275114
],
[
-26.879580529336646,
-30.581708806971534
],
[
-28.048257943655628,
-0.7281359239755113
],
[
0,
0
]
],
"index": "b1v"
},
{
"type": "arrow",
"version": 2258,
"versionNonce": 258091305,
"isDeleted": false,
"id": "-Pk4qZ5vbtjUmF7mntFvP",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 1860.5280592200293,
"y": 2545.850233282406,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"width": 111.77686370538231,
"height": 3.9892556655020144,
"seed": 1430950695,
"groupIds": [],
"frameId": null,
"roundness": {
"type": 2
},
"boundElements": [],
"updated": 1767426023829,
"link": null,
"locked": false,
"startBinding": null,
"endBinding": {
"elementId": "5i6DG7-UCF68UjZccjW12",
"focus": -0.10221695669150206,
"gap": 11.03063563862952
},
"lastCommittedPoint": null,
"startArrowhead": "arrow",
"endArrowhead": "arrow",
"points": [
[
0,
0
],
[
111.77686370538231,
3.9892556655020144
]
],
"index": "b1w"
},
{
"type": "rectangle",
"version": 536,
"versionNonce": 67884231,
"isDeleted": false,
"id": "pAxu3xQSGeBPjFaHUqSK_",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 2219.879870912689,
"y": 2538.9996515784437,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 96.6723420832425,
"height": 97.8021542026703,
"seed": 1023120967,
"groupIds": [],
"frameId": null,
"roundness": null,
"boundElements": [],
"updated": 1767426023670,
"link": null,
"locked": false,
"index": "b1x"
},
{
"type": "rectangle",
"version": 477,
"versionNonce": 828613607,
"isDeleted": false,
"id": "9G12Y0J5Sok81u7BK6c_P",
"fillStyle": "solid",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 2213.8712868600273,
"y": 2531.6544452866574,
"strokeColor": "#000000",
"backgroundColor": "#fff",
"width": 96.6723420832425,
"height": 97.8021542026703,
"seed": 165623143,
"groupIds": [],
"frameId": null,
"roundness": null,
"boundElements": [
{
"id": "ST1jtKt2vbUlvlcoQrJs9",
"type": "arrow"
}
],
"updated": 1767426023670,
"link": null,
"locked": false,
"index": "b1y"
},
{
"type": "rectangle",
"version": 553,
"versionNonce": 1130875945,
"isDeleted": false,
"id": "xiP_pre7QAPYz-lyCdnbW",
"fillStyle": "solid",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 2206.3232482655453,
"y": 2523.726611092706,
"strokeColor": "#000000",
"backgroundColor": "#fff",
"width": 96.6723420832425,
"height": 97.8021542026703,
"seed": 859959431,
"groupIds": [],
"frameId": null,
"roundness": null,
"boundElements": [
{
"id": "dt_fcwKeERoerJr1U8GrX",
"type": "arrow"
},
{
"type": "text",
"id": "v4xpn-eRsTGVd1ZYdeqv2"
},
{
"id": "t1clOSq5sDG7RNWPvQr0g",
"type": "arrow"
},
{
"id": "9g_nPYIOZJj72HnyneyZF",
"type": "arrow"
}
],
"updated": 1767426029331,
"link": null,
"locked": false,
"index": "b1z"
},
{
"type": "text",
"version": 382,
"versionNonce": 379828551,
"isDeleted": false,
"id": "v4xpn-eRsTGVd1ZYdeqv2",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 2227.077533015663,
"y": 2552.201706373878,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"width": 55.16377258300781,
"height": 40.85196364032697,
"seed": 316688295,
"groupIds": [],
"frameId": null,
"roundness": null,
"boundElements": [],
"updated": 1767426023670,
"link": null,
"locked": false,
"fontSize": 16.34078545613079,
"fontFamily": 1,
"text": "Chat\nService",
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "xiP_pre7QAPYz-lyCdnbW",
"originalText": "Chat Service",
"lineHeight": 1.25,
"index": "b20",
"autoResize": true
},
{
"type": "arrow",
"version": 1080,
"versionNonce": 2120659689,
"isDeleted": false,
"id": "dt_fcwKeERoerJr1U8GrX",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 2114.0641263341236,
"y": 2567.0475752739762,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"width": 85.11493014222333,
"height": 4.953810843609062,
"seed": 384219847,
"groupIds": [],
"frameId": null,
"roundness": {
"type": 2
},
"boundElements": [],
"updated": 1767426023830,
"link": null,
"locked": false,
"startBinding": {
"elementId": "5i6DG7-UCF68UjZccjW12",
"focus": 0.15525030110827445,
"gap": 10.563272529257574
},
"endBinding": {
"elementId": "xiP_pre7QAPYz-lyCdnbW",
"focus": -0.05032909516633028,
"gap": 7.14419178919843
},
"lastCommittedPoint": null,
"startArrowhead": "arrow",
"endArrowhead": "arrow",
"points": [
[
0,
0
],
[
85.11493014222333,
4.953810843609062
]
],
"index": "b21"
},
{
"type": "arrow",
"version": 1123,
"versionNonce": 1302580393,
"isDeleted": false,
"id": "t1clOSq5sDG7RNWPvQr0g",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 2326.6184744656725,
"y": 2568.6854660137055,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"width": 128.61872895993156,
"height": 0.16460540931643663,
"seed": 871483879,
"groupIds": [],
"frameId": null,
"roundness": {
"type": 2
},
"boundElements": [],
"updated": 1767426023830,
"link": null,
"locked": false,
"startBinding": {
"elementId": "xiP_pre7QAPYz-lyCdnbW",
"focus": -0.07863354722143205,
"gap": 23.622884116884507
},
"endBinding": {
"elementId": "iZ8YRXTnofmregQba7dxY",
"focus": 0.2689588687805207,
"gap": 18.112689431988656
},
"lastCommittedPoint": null,
"startArrowhead": "arrow",
"endArrowhead": "arrow",
"points": [
[
0,
0
],
[
128.61872895993156,
-0.16460540931643663
]
],
"index": "b22"
},
{
"type": "text",
"version": 801,
"versionNonce": 1769291559,
"isDeleted": false,
"id": "OmjrMfSQFI8Q9l1dCsXY3",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 0,
"opacity": 100,
"angle": 0,
"x": 2659.493740998226,
"y": 2578.3967533928894,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"width": 150.40350341796875,
"height": 21.57897923836773,
"seed": 386790663,
"groupIds": [],
"frameId": null,
"roundness": null,
"boundElements": [],
"updated": 1767426023670,
"link": null,
"locked": false,
"fontSize": 17.263183390694184,
"fontFamily": 1,
"text": "partion by chatId",
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "partion by chatId",
"lineHeight": 1.25,
"index": "b23",
"autoResize": true
},
{
"id": "T8wTo6eu6-hWu5V_E_F7y",
"type": "text",
"x": 2583.9993712319915,
"y": 2660.5868085465686,
"width": 154.75987243652344,
"height": 200,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b24",
"roundness": null,
"seed": 397917223,
"version": 333,
"versionNonce": 1324401223,
"isDeleted": false,
"boundElements": [],
"updated": 1767426023670,
"link": null,
"locked": false,
"text": "Chat\n- id\n- name\n- metadata\n\nChatParticipant\n- chatId\n- participantId",
"fontSize": 20,
"fontFamily": 5,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "Chat\n- id\n- name\n- metadata\n\nChatParticipant\n- chatId\n- participantId",
"autoResize": true,
"lineHeight": 1.25
},
{
"id": "3mKcrw3Jo7sY8g7vlXu7W",
"type": "text",
"x": 2201.342970816061,
"y": 2663.5817313009093,
"width": 122.43991088867188,
"height": 50,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b25",
"roundness": null,
"seed": 1776000839,
"version": 77,
"versionNonce": 339048041,
"isDeleted": false,
"boundElements": [
{
"id": "ST1jtKt2vbUlvlcoQrJs9",
"type": "arrow"
}
],
"updated": 1767426023830,
"link": null,
"locked": false,
"text": "clientA: WS1\nclientB: WS2",
"fontSize": 20,
"fontFamily": 5,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "clientA: WS1\nclientB: WS2",
"autoResize": true,
"lineHeight": 1.25
},
{
"id": "iZ8YRXTnofmregQba7dxY",
"type": "rectangle",
"x": 2473.3498928575927,
"y": 2531.001380872367,
"width": 157.0085861851885,
"height": 102.3823433592247,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b26",
"roundness": {
"type": 3
},
"seed": 265690727,
"version": 114,
"versionNonce": 532640521,
"isDeleted": false,
"boundElements": [
{
"type": "text",
"id": "n1cSUFmE0kYopryhfGxOk"
},
{
"id": "t1clOSq5sDG7RNWPvQr0g",
"type": "arrow"
},
{
"id": "Eu4t6J-T1yLRgTSjFukrC",
"type": "arrow"
}
],
"updated": 1767426226079,
"link": null,
"locked": false
},
{
"id": "n1cSUFmE0kYopryhfGxOk",
"type": "text",
"x": 2491.264227759269,
"y": 2557.1925525519796,
"width": 121.17991638183594,
"height": 50,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b27",
"roundness": null,
"seed": 208910727,
"version": 94,
"versionNonce": 1448407975,
"isDeleted": false,
"boundElements": [],
"updated": 1767426023670,
"link": null,
"locked": false,
"text": "Database\n(DynamoDB)",
"fontSize": 20,
"fontFamily": 5,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "iZ8YRXTnofmregQba7dxY",
"originalText": "Database (DynamoDB)",
"autoResize": true,
"lineHeight": 1.25
},
{
"id": "Wun8kUrrJ_cXhofzDWBPs",
"type": "ellipse",
"x": 2422.192210729543,
"y": 2755.998540958395,
"width": 92.07712992017014,
"height": 94.04822924091764,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b28",
"roundness": {
"type": 2
},
"seed": 1425076391,
"version": 84,
"versionNonce": 187397607,
"isDeleted": false,
"boundElements": [
{
"type": "text",
"id": "5FK0EAImY_dSH8OlgzuGi"
},
{
"id": "ST1jtKt2vbUlvlcoQrJs9",
"type": "arrow"
},
{
"id": "ciQONvvezzhe6MNlfW_tF",
"type": "arrow"
}
],
"updated": 1767426023670,
"link": null,
"locked": false
},
{
"id": "5FK0EAImY_dSH8OlgzuGi",
"type": "text",
"x": 2446.7666058069344,
"y": 2778.271585251434,
"width": 42.819976806640625,
"height": 50,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b29",
"roundness": null,
"seed": 49955783,
"version": 47,
"versionNonce": 842146055,
"isDeleted": false,
"boundElements": [],
"updated": 1767426023670,
"link": null,
"locked": false,
"text": "Blob\nS3",
"fontSize": 20,
"fontFamily": 5,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "Wun8kUrrJ_cXhofzDWBPs",
"originalText": "Blob S3",
"autoResize": true,
"lineHeight": 1.25
},
{
"id": "ST1jtKt2vbUlvlcoQrJs9",
"type": "arrow",
"x": 2323.5511287024174,
"y": 2637.7325817135334,
"width": 113.38605315951509,
"height": 121.08865001971867,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b2A",
"roundness": {
"type": 2
},
"seed": 1185690343,
"version": 159,
"versionNonce": 283951433,
"isDeleted": false,
"boundElements": [],
"updated": 1767426023830,
"link": null,
"locked": false,
"points": [
[
0,
0
],
[
113.38605315951509,
121.08865001971867
]
],
"lastCommittedPoint": null,
"startBinding": {
"elementId": "3mKcrw3Jo7sY8g7vlXu7W",
"focus": 0,
"gap": 14
},
"endBinding": {
"elementId": "Wun8kUrrJ_cXhofzDWBPs",
"focus": 0.11209020220399775,
"gap": 7.468330530689694
},
"startArrowhead": "arrow",
"endArrowhead": "arrow",
"elbowed": false
},
{
"id": "ciQONvvezzhe6MNlfW_tF",
"type": "arrow",
"x": 1847.6358956181998,
"y": 2569.4234649619907,
"width": 565.8968739206798,
"height": 430.723475356589,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b2B",
"roundness": {
"type": 2
},
"seed": 412302855,
"version": 184,
"versionNonce": 1379381289,
"isDeleted": false,
"boundElements": [],
"updated": 1767426023831,
"link": null,
"locked": false,
"points": [
[
0,
0
],
[
130.35568736022424,
430.723475356589
],
[
565.8968739206798,
224.0738053071334
]
],
"lastCommittedPoint": null,
"startBinding": null,
"endBinding": {
"elementId": "Wun8kUrrJ_cXhofzDWBPs",
"focus": 0.5151568332530344,
"gap": 9.454322545988353
},
"startArrowhead": "arrow",
"endArrowhead": "arrow",
"elbowed": false
},
{
"id": "bupkHVxOE2ToEGrT_0fs8",
"type": "text",
"x": 2857.2310540165045,
"y": 2644.0812438461367,
"width": 113.59991455078125,
"height": 125,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b2C",
"roundness": null,
"seed": 732685607,
"version": 106,
"versionNonce": 402234535,
"isDeleted": false,
"boundElements": [],
"updated": 1767426023670,
"link": null,
"locked": false,
"text": "Messages\n- id\n- contents\n- creatorId\n- timestamp",
"fontSize": 20,
"fontFamily": 5,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "Messages\n- id\n- contents\n- creatorId\n- timestamp",
"autoResize": true,
"lineHeight": 1.25
},
{
"id": "bN4u644PC1JZrxNQKECS_",
"type": "text",
"x": 2847.4760260674648,
"y": 2790.282273318779,
"width": 120.69989013671875,
"height": 100,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b2D",
"roundness": null,
"seed": 526559303,
"version": 104,
"versionNonce": 1772001255,
"isDeleted": false,
"boundElements": [],
"updated": 1767426220029,
"link": null,
"locked": false,
"text": "Inbox\n- recipientId\n- messageId\n- timestamp",
"fontSize": 20,
"fontFamily": 5,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "Inbox\n- recipientId\n- messageId\n- timestamp",
"autoResize": true,
"lineHeight": 1.25
},
{
"id": "5i6DG7-UCF68UjZccjW12",
"type": "rectangle",
"x": 1983.335558564041,
"y": 2339.4459301359207,
"width": 120.16529524082489,
"height": 385.9718660209728,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b2E",
"roundness": {
"type": 3
},
"seed": 1905526631,
"version": 80,
"versionNonce": 1422667143,
"isDeleted": false,
"boundElements": [
{
"id": "-Pk4qZ5vbtjUmF7mntFvP",
"type": "arrow"
},
{
"id": "dt_fcwKeERoerJr1U8GrX",
"type": "arrow"
}
],
"updated": 1767426027747,
"link": null,
"locked": false
},
{
"id": "B2cvhujyb7Zl1Gfekhpi4",
"type": "text",
"x": 2009.036397280198,
"y": 2444.660532713307,
"width": 77.699951171875,
"height": 75,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b2F",
"roundness": null,
"seed": 814514823,
"version": 92,
"versionNonce": 959165287,
"isDeleted": false,
"boundElements": [],
"updated": 1767426023670,
"link": null,
"locked": false,
"text": "API GW\n\nLB",
"fontSize": 20,
"fontFamily": 5,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "API GW\n\nLB",
"autoResize": true,
"lineHeight": 1.25
},
{
"id": "SNwr2UOs1EgIcce8XcH4U",
"type": "text",
"x": 1993.0570969615164,
"y": 2751.1856139761817,
"width": 184.7998504638672,
"height": 50,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b2G",
"roundness": null,
"seed": 1829280167,
"version": 63,
"versionNonce": 5156487,
"isDeleted": false,
"boundElements": [],
"updated": 1767426023670,
"link": null,
"locked": false,
"text": "Layer 4 \n(Least Connection)",
"fontSize": 20,
"fontFamily": 5,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "Layer 4 \n(Least Connection)",
"autoResize": true,
"lineHeight": 1.25
},
{
"id": "Q79jrv6_RVXFkkmt0GgtU",
"type": "rectangle",
"x": 2380.7202777631255,
"y": 2392.092120707249,
"width": 174.46621099443246,
"height": 62.486719000693256,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b2H",
"roundness": {
"type": 3
},
"seed": 1815399623,
"version": 285,
"versionNonce": 993508841,
"isDeleted": false,
"boundElements": [
{
"type": "text",
"id": "0l1cFPPN99vCuqeKqAr_2"
},
{
"id": "9g_nPYIOZJj72HnyneyZF",
"type": "arrow"
}
],
"updated": 1767426134137,
"link": null,
"locked": false
},
{
"id": "0l1cFPPN99vCuqeKqAr_2",
"type": "text",
"x": 2396.433447652432,
"y": 2410.8354802075955,
"width": 143.0398712158203,
"height": 25,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b2I",
"roundness": null,
"seed": 430808039,
"version": 268,
"versionNonce": 1060772041,
"isDeleted": false,
"boundElements": [],
"updated": 1767426134137,
"link": null,
"locked": false,
"text": "Redis Pub/Sub",
"fontSize": 20,
"fontFamily": 5,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "Q79jrv6_RVXFkkmt0GgtU",
"originalText": "Redis Pub/Sub",
"autoResize": true,
"lineHeight": 1.25
},
{
"id": "9g_nPYIOZJj72HnyneyZF",
"type": "arrow",
"x": 2276.4689514539177,
"y": 2511.4098316926556,
"width": 97.63629976792663,
"height": 75.52025487035735,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b2J",
"roundness": {
"type": 2
},
"seed": 964658951,
"version": 351,
"versionNonce": 200153001,
"isDeleted": false,
"boundElements": [],
"updated": 1767426134137,
"link": null,
"locked": false,
"points": [
[
0,
0
],
[
97.63629976792663,
-75.52025487035735
]
],
"lastCommittedPoint": null,
"startBinding": {
"elementId": "xiP_pre7QAPYz-lyCdnbW",
"focus": -0.505231117327166,
"gap": 12.316779400050429
},
"endBinding": {
"elementId": "Q79jrv6_RVXFkkmt0GgtU",
"focus": 0.6050469854590006,
"gap": 7.141248026500762
},
"startArrowhead": "arrow",
"endArrowhead": "arrow",
"elbowed": false
},
{
"type": "text",
"version": 1120,
"versionNonce": 363981097,
"isDeleted": false,
"id": "JMTS9tWI_TmYG3RHwd13J",
"fillStyle": "cross-hatch",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 1830.7824908602547,
"y": 1652.0953302492617,
"strokeColor": "#000000",
"backgroundColor": "#7950f2",
"width": 36.5035400390625,
"height": 20.425981820163486,
"seed": 832282313,
"groupIds": [
"p4-kEAHHTBVJZLtp_E1H4",
"Yi3kDIidCyWDBtpldeAFe"
],
"frameId": null,
"roundness": null,
"boundElements": [],
"updated": 1767426062820,
"link": null,
"locked": false,
"fontSize": 16.34078545613079,
"fontFamily": 1,
"text": "User",
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "User",
"lineHeight": 1.25,
"index": "b2T",
"autoResize": true
},
{
"type": "ellipse",
"version": 1028,
"versionNonce": 2009914377,
"isDeleted": false,
"id": "PciTyWlKgmP99aAitx2gG",
"fillStyle": "cross-hatch",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 0,
"opacity": 100,
"angle": 0,
"x": 1834.5983260589173,
"y": 1681.197911737051,
"strokeColor": "#000000",
"backgroundColor": "#ced4da",
"width": 30.70102704639993,
"height": 30.70102704639993,
"seed": 70180265,
"groupIds": [
"UFyc-oBSxMSBUfUQkcjO8",
"Yi3kDIidCyWDBtpldeAFe"
],
"frameId": null,
"roundness": null,
"boundElements": [],
"updated": 1767426062820,
"link": null,
"locked": false,
"index": "b2U"
},
{
"type": "line",
"version": 1337,
"versionNonce": 63337193,
"isDeleted": false,
"id": "k0FmjSoZ2si0mUSukiVon",
"fillStyle": "cross-hatch",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 0,
"opacity": 100,
"angle": 0,
"x": 1863.15359539879,
"y": 1753.8296539843977,
"strokeColor": "#000000",
"backgroundColor": "#ced4da",
"width": 29.216935357974613,
"height": 37.13493212275114,
"seed": 1672953993,
"groupIds": [
"UFyc-oBSxMSBUfUQkcjO8",
"Yi3kDIidCyWDBtpldeAFe"
],
"frameId": null,
"roundness": {
"type": 2
},
"boundElements": [],
"updated": 1767426062820,
"link": null,
"locked": false,
"startBinding": null,
"endBinding": null,
"lastCommittedPoint": null,
"startArrowhead": null,
"endArrowhead": null,
"points": [
[
0,
0
],
[
1.1686774143189838,
-26.21289326311846
],
[
-3.506032242956957,
-34.950524350824594
],
[
-16.945822507625277,
-37.13493212275114
],
[
-26.879580529336646,
-30.581708806971534
],
[
-28.048257943655628,
-0.7281359239755113
],
[
0,
0
]
],
"index": "b2V"
},
{
"type": "arrow",
"version": 2282,
"versionNonce": 1727276135,
"isDeleted": false,
"id": "cqUdtOujTRfRmDwNeUNRU",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 1873.4362918067281,
"y": 1733.0944672264586,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"width": 111.77686370538231,
"height": 3.9892556655020144,
"seed": 1039157097,
"groupIds": [],
"frameId": null,
"roundness": {
"type": 2
},
"boundElements": [],
"updated": 1767426062912,
"link": null,
"locked": false,
"startBinding": null,
"endBinding": {
"elementId": "su7IEtZ4sV-9siuv9WRzf",
"focus": -0.10221695669150066,
"gap": 11.03063563862952
},
"lastCommittedPoint": null,
"startArrowhead": "arrow",
"endArrowhead": "arrow",
"points": [
[
0,
0
],
[
111.77686370538231,
3.9892556655020144
]
],
"index": "b2W"
},
{
"type": "rectangle",
"version": 548,
"versionNonce": 1309904041,
"isDeleted": false,
"id": "qejp2YGIl_CBNH__GGSr5",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 2232.788103499388,
"y": 1726.2438855224964,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 96.6723420832425,
"height": 97.8021542026703,
"seed": 1025864265,
"groupIds": [],
"frameId": null,
"roundness": null,
"boundElements": [],
"updated": 1767426062820,
"link": null,
"locked": false,
"index": "b2X"
},
{
"type": "rectangle",
"version": 489,
"versionNonce": 187568009,
"isDeleted": false,
"id": "IEDoJtHVKB7qCJJI_2QZw",
"fillStyle": "solid",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 2226.779519446726,
"y": 1718.8986792307096,
"strokeColor": "#000000",
"backgroundColor": "#fff",
"width": 96.6723420832425,
"height": 97.8021542026703,
"seed": 909263145,
"groupIds": [],
"frameId": null,
"roundness": null,
"boundElements": [
{
"id": "tdYYZEhYiybZ-ZzNyyh52",
"type": "arrow"
}
],
"updated": 1767426062820,
"link": null,
"locked": false,
"index": "b2Y"
},
{
"type": "rectangle",
"version": 565,
"versionNonce": 994635337,
"isDeleted": false,
"id": "nzFsMmJ1nPD2hWMdeWbYO",
"fillStyle": "solid",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 2219.231480852244,
"y": 1710.9708450367589,
"strokeColor": "#000000",
"backgroundColor": "#fff",
"width": 96.6723420832425,
"height": 97.8021542026703,
"seed": 1451373577,
"groupIds": [],
"frameId": null,
"roundness": null,
"boundElements": [
{
"id": "1HRjcYZTAmAjQoIm-RWeA",
"type": "arrow"
},
{
"type": "text",
"id": "SKjqPVdcvLFyFmdEiAjco"
},
{
"id": "8irAZOlUzRDfDxYMnlviq",
"type": "arrow"
},
{
"id": "KQSSOmfSvvgJ7YlWySRDP",
"type": "arrow"
}
],
"updated": 1767426067598,
"link": null,
"locked": false,
"index": "b2Z"
},
{
"type": "text",
"version": 394,
"versionNonce": 1019703337,
"isDeleted": false,
"id": "SKjqPVdcvLFyFmdEiAjco",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 2239.9857656023614,
"y": 1739.4459403179305,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"width": 55.16377258300781,
"height": 40.85196364032697,
"seed": 303090409,
"groupIds": [],
"frameId": null,
"roundness": null,
"boundElements": [],
"updated": 1767426062820,
"link": null,
"locked": false,
"fontSize": 16.34078545613079,
"fontFamily": 1,
"text": "Chat\nService",
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "nzFsMmJ1nPD2hWMdeWbYO",
"originalText": "Chat Service",
"lineHeight": 1.25,
"index": "b2a",
"autoResize": true
},
{
"type": "arrow",
"version": 1116,
"versionNonce": 348485287,
"isDeleted": false,
"id": "1HRjcYZTAmAjQoIm-RWeA",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 2126.9723589208224,
"y": 1754.291809218029,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"width": 85.11493014222333,
"height": 4.953810843609062,
"seed": 1365870025,
"groupIds": [],
"frameId": null,
"roundness": {
"type": 2
},
"boundElements": [],
"updated": 1767426062913,
"link": null,
"locked": false,
"startBinding": {
"elementId": "su7IEtZ4sV-9siuv9WRzf",
"focus": 0.15525030110827479,
"gap": 10.563272529257574
},
"endBinding": {
"elementId": "nzFsMmJ1nPD2hWMdeWbYO",
"focus": -0.05032909516632093,
"gap": 7.14419178919843
},
"lastCommittedPoint": null,
"startArrowhead": "arrow",
"endArrowhead": "arrow",
"points": [
[
0,
0
],
[
85.11493014222333,
4.953810843609062
]
],
"index": "b2b"
},
{
"type": "arrow",
"version": 1159,
"versionNonce": 328677607,
"isDeleted": false,
"id": "8irAZOlUzRDfDxYMnlviq",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 2339.5267070523714,
"y": 1755.9296999577577,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"width": 128.61872895993156,
"height": 0.16460540931643663,
"seed": 1604838569,
"groupIds": [],
"frameId": null,
"roundness": {
"type": 2
},
"boundElements": [],
"updated": 1767426062913,
"link": null,
"locked": false,
"startBinding": {
"elementId": "nzFsMmJ1nPD2hWMdeWbYO",
"focus": -0.07863354722143676,
"gap": 23.622884116884507
},
"endBinding": {
"elementId": "gue1Os6I8KJrLk-iORjQM",
"focus": 0.26895886878052483,
"gap": 18.112689431988656
},
"lastCommittedPoint": null,
"startArrowhead": "arrow",
"endArrowhead": "arrow",
"points": [
[
0,
0
],
[
128.61872895993156,
-0.16460540931643663
]
],
"index": "b2c"
},
{
"type": "text",
"version": 813,
"versionNonce": 1767368777,
"isDeleted": false,
"id": "3W9Qw5BoluGgu0xec1gLR",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 0,
"opacity": 100,
"angle": 0,
"x": 2672.401973584925,
"y": 1765.640987336942,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"width": 150.40350341796875,
"height": 21.57897923836773,
"seed": 410478473,
"groupIds": [],
"frameId": null,
"roundness": null,
"boundElements": [],
"updated": 1767426062820,
"link": null,
"locked": false,
"fontSize": 17.263183390694184,
"fontFamily": 1,
"text": "partion by chatId",
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "partion by chatId",
"lineHeight": 1.25,
"index": "b2d",
"autoResize": true
},
{
"id": "bj0rKeaQDjUo29nft_FAU",
"type": "text",
"x": 2596.9076038186904,
"y": 1847.8310424906213,
"width": 154.75987243652344,
"height": 200,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b2e",
"roundness": null,
"seed": 1444122217,
"version": 345,
"versionNonce": 1621489449,
"isDeleted": false,
"boundElements": [],
"updated": 1767426062820,
"link": null,
"locked": false,
"text": "Chat\n- id\n- name\n- metadata\n\nChatParticipant\n- chatId\n- participantId",
"fontSize": 20,
"fontFamily": 5,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "Chat\n- id\n- name\n- metadata\n\nChatParticipant\n- chatId\n- participantId",
"autoResize": true,
"lineHeight": 1.25
},
{
"id": "RHrGllk0mUF8FnHKzeOHa",
"type": "text",
"x": 2214.25120340276,
"y": 1850.8259652449615,
"width": 122.43991088867188,
"height": 50,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b2f",
"roundness": null,
"seed": 524802377,
"version": 89,
"versionNonce": 302869287,
"isDeleted": false,
"boundElements": [
{
"id": "tdYYZEhYiybZ-ZzNyyh52",
"type": "arrow"
}
],
"updated": 1767426062913,
"link": null,
"locked": false,
"text": "clientA: WS1\nclientB: WS2",
"fontSize": 20,
"fontFamily": 5,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "clientA: WS1\nclientB: WS2",
"autoResize": true,
"lineHeight": 1.25
},
{
"id": "gue1Os6I8KJrLk-iORjQM",
"type": "rectangle",
"x": 2486.2581254442916,
"y": 1718.2456148164192,
"width": 157.0085861851885,
"height": 102.3823433592247,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b2g",
"roundness": {
"type": 3
},
"seed": 359647273,
"version": 125,
"versionNonce": 797901033,
"isDeleted": false,
"boundElements": [
{
"type": "text",
"id": "e-n-RAIeQoGaVLG65N6Ow"
},
{
"id": "8irAZOlUzRDfDxYMnlviq",
"type": "arrow"
}
],
"updated": 1767426062820,
"link": null,
"locked": false
},
{
"id": "e-n-RAIeQoGaVLG65N6Ow",
"type": "text",
"x": 2504.172460345968,
"y": 1744.4367864960316,
"width": 121.17991638183594,
"height": 50,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b2h",
"roundness": null,
"seed": 578214665,
"version": 107,
"versionNonce": 1303444425,
"isDeleted": false,
"boundElements": [],
"updated": 1767426062820,
"link": null,
"locked": false,
"text": "Database\n(DynamoDB)",
"fontSize": 20,
"fontFamily": 5,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "gue1Os6I8KJrLk-iORjQM",
"originalText": "Database (DynamoDB)",
"autoResize": true,
"lineHeight": 1.25
},
{
"id": "B31tfXzvQ1NJWFFskVlGz",
"type": "ellipse",
"x": 2435.100443316242,
"y": 1943.2427749024473,
"width": 92.07712992017014,
"height": 94.04822924091764,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b2i",
"roundness": {
"type": 2
},
"seed": 1725469161,
"version": 96,
"versionNonce": 1977179529,
"isDeleted": false,
"boundElements": [
{
"type": "text",
"id": "TnGIPxrutB0-vNUz4bkWt"
},
{
"id": "tdYYZEhYiybZ-ZzNyyh52",
"type": "arrow"
},
{
"id": "3SDWUVJJCXwowWK_QclYE",
"type": "arrow"
}
],
"updated": 1767426062820,
"link": null,
"locked": false
},
{
"id": "TnGIPxrutB0-vNUz4bkWt",
"type": "text",
"x": 2459.6748383936333,
"y": 1965.5158191954863,
"width": 42.819976806640625,
"height": 50,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b2j",
"roundness": null,
"seed": 1738566857,
"version": 59,
"versionNonce": 1606861929,
"isDeleted": false,
"boundElements": [],
"updated": 1767426062820,
"link": null,
"locked": false,
"text": "Blob\nS3",
"fontSize": 20,
"fontFamily": 5,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "B31tfXzvQ1NJWFFskVlGz",
"originalText": "Blob S3",
"autoResize": true,
"lineHeight": 1.25
},
{
"id": "tdYYZEhYiybZ-ZzNyyh52",
"type": "arrow",
"x": 2336.4593612891163,
"y": 1824.9768156575856,
"width": 113.38605315951509,
"height": 121.08865001971867,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b2k",
"roundness": {
"type": 2
},
"seed": 2087316393,
"version": 195,
"versionNonce": 195259975,
"isDeleted": false,
"boundElements": [],
"updated": 1767426062913,
"link": null,
"locked": false,
"points": [
[
0,
0
],
[
113.38605315951509,
121.08865001971867
]
],
"lastCommittedPoint": null,
"startBinding": {
"elementId": "RHrGllk0mUF8FnHKzeOHa",
"focus": 0,
"gap": 14
},
"endBinding": {
"elementId": "B31tfXzvQ1NJWFFskVlGz",
"focus": 0.1120902022039879,
"gap": 7.468330530689783
},
"startArrowhead": "arrow",
"endArrowhead": "arrow",
"elbowed": false
},
{
"id": "3SDWUVJJCXwowWK_QclYE",
"type": "arrow",
"x": 1860.5441282048987,
"y": 1756.667698906043,
"width": 565.8968739206798,
"height": 430.723475356589,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b2l",
"roundness": {
"type": 2
},
"seed": 2103479945,
"version": 208,
"versionNonce": 1707871591,
"isDeleted": false,
"boundElements": [],
"updated": 1767426062913,
"link": null,
"locked": false,
"points": [
[
0,
0
],
[
130.35568736022424,
430.723475356589
],
[
565.8968739206798,
224.0738053071334
]
],
"lastCommittedPoint": null,
"startBinding": null,
"endBinding": {
"elementId": "B31tfXzvQ1NJWFFskVlGz",
"focus": 0.5151568332530246,
"gap": 9.45432254598877
},
"startArrowhead": "arrow",
"endArrowhead": "arrow",
"elbowed": false
},
{
"id": "C7CdR1aqL6YJhobmehT2x",
"type": "text",
"x": 2870.139286603204,
"y": 1831.3254777901893,
"width": 113.59991455078125,
"height": 125,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b2m",
"roundness": null,
"seed": 826266985,
"version": 118,
"versionNonce": 747758281,
"isDeleted": false,
"boundElements": [],
"updated": 1767426062820,
"link": null,
"locked": false,
"text": "Messages\n- id\n- contents\n- creatorId\n- timestamp",
"fontSize": 20,
"fontFamily": 5,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "Messages\n- id\n- contents\n- creatorId\n- timestamp",
"autoResize": true,
"lineHeight": 1.25
},
{
"id": "_VUsM1XERmNVN4rQyb8aC",
"type": "text",
"x": 2860.384258654163,
"y": 1977.5265072628317,
"width": 120.69989013671875,
"height": 75,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b2n",
"roundness": null,
"seed": 2069053513,
"version": 104,
"versionNonce": 1337762217,
"isDeleted": false,
"boundElements": [],
"updated": 1767426062820,
"link": null,
"locked": false,
"text": "Inbox\n- recipientId\n- messageId",
"fontSize": 20,
"fontFamily": 5,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "Inbox\n- recipientId\n- messageId",
"autoResize": true,
"lineHeight": 1.25
},
{
"id": "su7IEtZ4sV-9siuv9WRzf",
"type": "rectangle",
"x": 1996.24379115074,
"y": 1526.6901640799733,
"width": 120.16529524082489,
"height": 385.9718660209728,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b2o",
"roundness": {
"type": 3
},
"seed": 1232490281,
"version": 93,
"versionNonce": 176784425,
"isDeleted": false,
"boundElements": [
{
"id": "cqUdtOujTRfRmDwNeUNRU",
"type": "arrow"
},
{
"id": "1HRjcYZTAmAjQoIm-RWeA",
"type": "arrow"
},
{
"id": "5ONYLJ06Rga55AEiv8Oei",
"type": "arrow"
}
],
"updated": 1767426074779,
"link": null,
"locked": false
},
{
"id": "zOY4BDgDdhguItzieQjWJ",
"type": "text",
"x": 2021.9446298668968,
"y": 1631.9047666573597,
"width": 77.699951171875,
"height": 75,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b2p",
"roundness": null,
"seed": 1108640265,
"version": 104,
"versionNonce": 1559590921,
"isDeleted": false,
"boundElements": [],
"updated": 1767426062820,
"link": null,
"locked": false,
"text": "API GW\n\nLB",
"fontSize": 20,
"fontFamily": 5,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "API GW\n\nLB",
"autoResize": true,
"lineHeight": 1.25
},
{
"id": "V52GOjHJsklTK9YkrC-TO",
"type": "text",
"x": 2005.9653295482149,
"y": 1938.4298479202344,
"width": 184.7998504638672,
"height": 50,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b2q",
"roundness": null,
"seed": 841570537,
"version": 75,
"versionNonce": 1903922921,
"isDeleted": false,
"boundElements": [],
"updated": 1767426062820,
"link": null,
"locked": false,
"text": "Layer 4 \n(Least Connection)",
"fontSize": 20,
"fontFamily": 5,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "Layer 4 \n(Least Connection)",
"autoResize": true,
"lineHeight": 1.25
},
{
"id": "SP747nDBSXNFudMWanC3l",
"type": "rectangle",
"x": 2238.1805348959288,
"y": 1520.278777144965,
"width": 140.72309568075843,
"height": 90.65621608943695,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b2w",
"roundness": {
"type": 3
},
"seed": 960878121,
"version": 170,
"versionNonce": 1347212327,
"isDeleted": false,
"boundElements": [
{
"type": "text",
"id": "loiyePmAsyJe9UJwr81MU"
},
{
"id": "V5qPrzG1mlc5ZsTJq1ES9",
"type": "arrow"
},
{
"id": "5ONYLJ06Rga55AEiv8Oei",
"type": "arrow"
}
],
"updated": 1767426071237,
"link": null,
"locked": false
},
{
"id": "loiyePmAsyJe9UJwr81MU",
"type": "text",
"x": 2267.4421224091593,
"y": 1540.6068851896835,
"width": 82.19992065429688,
"height": 50,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b2x",
"roundness": null,
"seed": 1012607241,
"version": 111,
"versionNonce": 898887,
"isDeleted": false,
"boundElements": [],
"updated": 1767426071237,
"link": null,
"locked": false,
"text": "Chat\nRegistry",
"fontSize": 20,
"fontFamily": 5,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "SP747nDBSXNFudMWanC3l",
"originalText": "Chat Registry",
"autoResize": true,
"lineHeight": 1.25
},
{
"id": "wiMEyZlt2PyZ58mTliMjF",
"type": "rectangle",
"x": 2445.0479707020368,
"y": 1591.1255660864313,
"width": 156.96074396866516,
"height": 85.46055137503879,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b2y",
"roundness": {
"type": 3
},
"seed": 453189609,
"version": 185,
"versionNonce": 243761641,
"isDeleted": false,
"boundElements": [
{
"type": "text",
"id": "xD1xMSCxOvbxafQbd4xxF"
},
{
"id": "V5qPrzG1mlc5ZsTJq1ES9",
"type": "arrow"
},
{
"id": "KQSSOmfSvvgJ7YlWySRDP",
"type": "arrow"
}
],
"updated": 1767426139121,
"link": null,
"locked": false
},
{
"id": "xD1xMSCxOvbxafQbd4xxF",
"type": "text",
"x": 2472.2783732039475,
"y": 1621.3558417739507,
"width": 102.49993896484375,
"height": 25,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b2z",
"roundness": null,
"seed": 323566281,
"version": 164,
"versionNonce": 468802761,
"isDeleted": false,
"boundElements": [],
"updated": 1767426139121,
"link": null,
"locked": false,
"text": "Zookeeper",
"fontSize": 20,
"fontFamily": 5,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "wiMEyZlt2PyZ58mTliMjF",
"originalText": "Zookeeper",
"autoResize": true,
"lineHeight": 1.25
},
{
"id": "V5qPrzG1mlc5ZsTJq1ES9",
"type": "arrow",
"x": 2387.294173856681,
"y": 1588.3618743840652,
"width": 56.58699763081813,
"height": 11.653492415425262,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b30",
"roundness": {
"type": 2
},
"seed": 365492649,
"version": 364,
"versionNonce": 1495063465,
"isDeleted": false,
"boundElements": [],
"updated": 1767426139121,
"link": null,
"locked": false,
"points": [
[
0,
0
],
[
56.58699763081813,
11.653492415425262
]
],
"lastCommittedPoint": null,
"startBinding": {
"elementId": "SP747nDBSXNFudMWanC3l",
"focus": 0.1013308608295181,
"gap": 10.190392119399348
},
"endBinding": {
"elementId": "wiMEyZlt2PyZ58mTliMjF",
"focus": 0.30343380524312263,
"gap": 3.4829133628745694
},
"startArrowhead": "arrow",
"endArrowhead": "arrow",
"elbowed": false
},
{
"id": "5ONYLJ06Rga55AEiv8Oei",
"type": "arrow",
"x": 2123.744870656079,
"y": 1591.3325446929937,
"width": 110.30209673226204,
"height": 1.9983122187271647,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b31",
"roundness": {
"type": 2
},
"seed": 1940774025,
"version": 286,
"versionNonce": 1136896201,
"isDeleted": false,
"boundElements": [],
"updated": 1767426076548,
"link": null,
"locked": false,
"points": [
[
0,
0
],
[
110.30209673226204,
-1.9983122187271647
]
],
"lastCommittedPoint": null,
"startBinding": {
"elementId": "su7IEtZ4sV-9siuv9WRzf",
"focus": -0.6550175065616434,
"gap": 7.335784264514132
},
"endBinding": {
"elementId": "SP747nDBSXNFudMWanC3l",
"focus": -0.48017986975205285,
"gap": 4.145249765497019
},
"startArrowhead": "arrow",
"endArrowhead": "arrow",
"elbowed": false
},
{
"id": "KQSSOmfSvvgJ7YlWySRDP",
"type": "arrow",
"x": 2321.5608042819936,
"y": 1721.3699777228294,
"width": 117.54737253824533,
"height": 66.50069043836766,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b32",
"roundness": {
"type": 2
},
"seed": 1286824809,
"version": 296,
"versionNonce": 641040009,
"isDeleted": false,
"boundElements": [],
"updated": 1767426139121,
"link": null,
"locked": false,
"points": [
[
0,
0
],
[
117.54737253824533,
-66.50069043836766
]
],
"lastCommittedPoint": null,
"startBinding": {
"elementId": "nzFsMmJ1nPD2hWMdeWbYO",
"focus": -0.10648647863082655,
"gap": 5.6569813465066545
},
"endBinding": {
"elementId": "wiMEyZlt2PyZ58mTliMjF",
"focus": 0.3079496768013316,
"gap": 6.869956957485619
},
"startArrowhead": "arrow",
"endArrowhead": "arrow",
"elbowed": false
},
{
"id": "7iyv351rSGB_Zu_kOut-f",
"type": "text",
"x": 1588.6663928398284,
"y": 1504.6648775683166,
"width": 206.7598419189453,
"height": 25,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b33",
"roundness": null,
"seed": 703732775,
"version": 52,
"versionNonce": 1365596969,
"isDeleted": false,
"boundElements": [],
"updated": 1767426154914,
"link": null,
"locked": false,
"text": "2 Consistent Hashing",
"fontSize": 20,
"fontFamily": 5,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "2 Consistent Hashing",
"autoResize": true,
"lineHeight": 1.25
},
{
"id": "el9rADi__gk8Zc56Zu7Jr",
"type": "rectangle",
"x": 2787.875589053758,
"y": 2386.666379214741,
"width": 167.25162128010652,
"height": 112.35773549898522,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b34",
"roundness": {
"type": 3
},
"seed": 1871642727,
"version": 158,
"versionNonce": 2143781705,
"isDeleted": false,
"boundElements": [
{
"type": "text",
"id": "UwHLsyTELnPYVZWEmwNSu"
},
{
"id": "Eu4t6J-T1yLRgTSjFukrC",
"type": "arrow"
}
],
"updated": 1767426228904,
"link": null,
"locked": false
},
{
"id": "UwHLsyTELnPYVZWEmwNSu",
"type": "text",
"x": 2835.7214314320927,
"y": 2430.345246964234,
"width": 71.5599365234375,
"height": 25,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b35",
"roundness": null,
"seed": 398079657,
"version": 106,
"versionNonce": 1550463529,
"isDeleted": false,
"boundElements": [],
"updated": 1767426228904,
"link": null,
"locked": false,
"text": "Cleanup",
"fontSize": 20,
"fontFamily": 5,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "el9rADi__gk8Zc56Zu7Jr",
"originalText": "Cleanup",
"autoResize": true,
"lineHeight": 1.25
},
{
"id": "Eu4t6J-T1yLRgTSjFukrC",
"type": "arrow",
"x": 2616.1459587565446,
"y": 2527.0643576787456,
"width": 164.34710338308105,
"height": 82.69534099633711,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b36",
"roundness": {
"type": 2
},
"seed": 1004131561,
"version": 124,
"versionNonce": 848561417,
"isDeleted": false,
"boundElements": [],
"updated": 1767426228905,
"link": null,
"locked": false,
"points": [
[
0,
0
],
[
164.34710338308105,
-82.69534099633711
]
],
"lastCommittedPoint": null,
"startBinding": {
"elementId": "iZ8YRXTnofmregQba7dxY",
"focus": -0.24946351315699086,
"gap": 7.50433116990332
},
"endBinding": {
"elementId": "el9rADi__gk8Zc56Zu7Jr",
"focus": 0.4507745489250347,
"gap": 9.027500425667313
},
"startArrowhead": "arrow",
"endArrowhead": "arrow",
"elbowed": false
},
{
"id": "tTrNBcgz6qiW30lybcWGe",
"type": "text",
"x": 2779.0293375578713,
"y": 1273.9310233227611,
"width": 88.01992797851562,
"height": 100,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b37",
"roundness": null,
"seed": 1783080853,
"version": 35,
"versionNonce": 1056295291,
"isDeleted": false,
"boundElements": null,
"updated": 1767426503549,
"link": null,
"locked": false,
"text": "Available\n- userId \n- status\n",
"fontSize": 20,
"fontFamily": 5,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "Available\n- userId \n- status\n",
"autoResize": true,
"lineHeight": 1.25
},
{
"id": "9PZo3kBCf5y3NpSm41Ita",
"type": "text",
"x": 2794.992953674405,
"y": 2103.1860247983163,
"width": 88.01992797851562,
"height": 100,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b38",
"roundness": null,
"seed": 144946171,
"version": 69,
"versionNonce": 1509607733,
"isDeleted": false,
"boundElements": [],
"updated": 1767426511106,
"link": null,
"locked": false,
"text": "Available\n- userId \n- status\n",
"fontSize": 20,
"fontFamily": 5,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "Available\n- userId \n- status\n",
"autoResize": true,
"lineHeight": 1.25
},
{
"id": "vShNSvdga8f6TrSdUZvc-",
"type": "text",
"x": 2657.5790354612086,
"y": 2940.1384937369626,
"width": 88.01992797851562,
"height": 100,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "b39",
"roundness": null,
"seed": 1087120859,
"version": 43,
"versionNonce": 651310485,
"isDeleted": false,
"boundElements": [],
"updated": 1767426513856,
"link": null,
"locked": false,
"text": "Available\n- userId \n- status\n",
"fontSize": 20,
"fontFamily": 5,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "Available\n- userId \n- status\n",
"autoResize": true,
"lineHeight": 1.25
}
],
"appState": {
"gridSize": 20,
"gridStep": 5,
"gridModeEnabled": false,
"viewBackgroundColor": "#ffffff"
},
"files": {}
}