{"id":6,"name":"Inventory","description":"Architecture diagrams for Inventory Services","revision":3,"lastModifiedDate":"2025-06-24T14:11:45Z","lastModifiedUser":"root@9a732c30f750","lastModifiedAgent":"structurizr-cli/","properties":{"structurizr.dslEditor":"true","structurizr.dsl":"d29ya3NwYWNlICJJbnZlbnRvcnkiIHsKICAgIGRlc2NyaXB0aW9uICJBcmNoaXRlY3R1cmUgZGlhZ3JhbXMgZm9yIEludmVudG9yeSBTZXJ2aWNlcyIKICAgICFpZGVudGlmaWVycyBoaWVyYXJjaGljYWwKCiAgICBwcm9wZXJ0aWVzIHsKICAgICAgICAic3RydWN0dXJpenIuZHNsRWRpdG9yIiAidHJ1ZSIKICAgIH0KCiAgICBtb2RlbCB7CiAgICAgICAgaW52ZW50b3J5ID0gc29mdHdhcmVTeXN0ZW0gIkludmVudG9yeSIgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiU2VydmljZXMgYW5kIGFwcGxpY2F0aW9ucyB1c2VkIHRvIG1hbmFnZSBtYXRlcmlhbHMgaW4gU2FtdGVjIGludmVudG9yeS4iCgogICAgICAgICAgICBpbnZlbnRvcnlBcGlTcWwgPSBjb250YWluZXIgIkludmVudG9yeSBBUEkgKFNlbmlvcikiIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJXZWIgQVBJIHRoYXQgcHJvdmlkZXMgYWNjZXNzIHRvIEludmVudG9yeSBkYXRhIGZyb20gU1FMLiIKICAgICAgICAgICAgICAgIHRlY2hub2xvZ3kgIkFTUC5ORVQiCiAgICAgICAgICAgICAgICB1cmwgImh0dHBzOi8vZGV2LmF6dXJlLmNvbS9zYW10ZWMvTWF0ZXJpYWxzJTIwTWFuYWdlbWVudC9fZ2l0L01hdGVyaWFsc01hbmFnZW1lbnQuSW52ZW50b3J5LkFwaSIKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaW52ZW50b3J5RGJTcWwgPSBjb250YWluZXIgIkludmVudG9yeSBEYXRhYmFzZSAoU1FMKSIgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlNvdXJjZSBvZiB0cnV0aCBmb3IgaW52ZW50b3J5IGRhdGEgKFBhcmNlbHMsIElzc3VlcywgLi4uKS4gRGF0YWJhc2UgaXMgc2hhcmVkIHdpdGggb3RoZXIgYXBwbGljYXRpb25zLiIKICAgICAgICAgICAgICAgIHRlY2hub2xvZ3kgIlNRTCBTZXJ2ZXIiCiAgICAgICAgICAgICAgICB0YWdzIERhdGFiYXNlCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGludmVudG9yeVN1aXRlID0gY29udGFpbmVyICJJbnZlbnRvcnkgU3VpdGUiIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJXaW5kb3dzIERlc2t0b3AgYXBsaWNhdGlvbiBmb3IgbWFuYWdpbmcgaW52ZW50b3J5LiIKICAgICAgICAgICAgICAgIHRlY2hub2xvZ3kgIi5ORVQgRnJhbWV3b3JrIDQuNy4yIgogICAgICAgICAgICAgICAgdGFncyBEZXNrdG9wQXBwCiAgICAgICAgICAgICAgICB1cmwgImh0dHBzOi8vZGV2LmF6dXJlLmNvbS9zYW10ZWMvTWF0ZXJpYWxzJTIwTWFuYWdlbWVudC9fZ2l0L0ludmVudG9yeVN1aXRlIgogICAgICAgICAgICB9CgogICAgICAgICAgICBtbURjcCA9IGNvbnRhaW5lciAiTWF0ZXJpYWxzIE1hbmFnZW1lbnQgRGF0YSBDaGFuZ2UgUHVibGlzaGVyIChNTSBEQ1ApIiB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiU2VydmljZSB0aGF0IHB1Ymxpc2hlcyBTUUwgaW52ZW50b3J5IGRhdGEgY2hhbmdlcyB0byBhbiBTTlMgdG9waWMuIgogICAgICAgICAgICAgICAgdGVjaG5vbG9neSAiQVNQLk5FVCIKICAgICAgICAgICAgICAgIHVybCAiaHR0cHM6Ly9kZXYuYXp1cmUuY29tL3NhbXRlYy9Db3JlJTIwU3VkZGVuJTIwU2VydmljZXMvX2dpdC9TYW10ZWMuQ29yZVNlcnZpY2VzLk1hdE1nbXREYXRhQ2hhbmdlUHVibGlzaGVyIgogICAgICAgICAgICB9CgogICAgICAgICAgICBpbnZlbnRvcnlEYXRhU3luYyA9IGNvbnRhaW5lciAiSW52ZW50b3J5IERhdGFTeW5jIiB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiV29yayBzZXJ2aWNlIHRoYXQgcmVwbGljYXRlcyBJbnZlbnRvcnkgZGF0YSBmcm9tIFNRTCB0byBNb25nb0RCLiIKICAgICAgICAgICAgICAgIHRlY2hub2xvZ3kgIkFTUC5ORVQiCiAgICAgICAgICAgICAgICB1cmwgImh0dHBzOi8vZGV2LmF6dXJlLmNvbS9zYW10ZWMvTWF0ZXJpYWxzJTIwTWFuYWdlbWVudC9fZ2l0L0ludmVudG9yeS5TZXJ2aWNlcz9wYXRoPS9zcmMvRGF0YVN5bmMiCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGludmVudG9yeUFwaU1vbmdvID0gY29udGFpbmVyICJJbnZlbnRvcnkgQVBJIChKdW5pb3IpIiB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiV2ViIEFQSSB0aGF0IHByb3ZpZGVzIGFjY2VzcyB0byBJbnZlbnRvcnkgZGF0YSBmcm9tIE1vbmdvREIuIEluaXRpYWxseSByZWFkLW9ubHkuIFdpbGwgcmVwbGFjZSBTUUwgQVBJIGxhdGVyLiIKICAgICAgICAgICAgICAgIHRlY2hub2xvZ3kgIkFTUC5ORVQiCiAgICAgICAgICAgICAgICB1cmwgImh0dHBzOi8vZGV2LmF6dXJlLmNvbS9zYW10ZWMvTWF0ZXJpYWxzJTIwTWFuYWdlbWVudC9fZ2l0L0ludmVudG9yeS5TZXJ2aWNlcz9wYXRoPS9zcmMvQXBpIgogICAgICAgICAgICB9CgogICAgICAgICAgICBpbnZlbnRvcnlEaXNwYXRjaGVyID0gY29udGFpbmVyICJJbnZlbnRvcnkgRGlzcGF0Y2hlciIgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIldvcmtlciBzZXJ2aWNlIHRvIHByb2Nlc3MgcXVldWVkIGludmVudG9yeSBBUEkgcmVxdWVzdHMgYXN5bmNocm9ub3VzbHkuIgogICAgICAgICAgICAgICAgdGVjaG5vbG9neSAiQVNQLk5FVCIKICAgICAgICAgICAgICAgIHRhZ3MgVE9ETwogICAgICAgICAgICAgICAgIyBUT0RPOiB1cmwgImh0dHBzOi8vZGV2LmF6dXJlLmNvbS9zYW10ZWMvTWF0ZXJpYWxzJTIwTWFuYWdlbWVudC9fZ2l0L0ludmVudG9yeS5TZXJ2aWNlcz9wYXRoPS9zcmMvRGlzcGF0Y2hlciIKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaW52ZW50b3J5RGJNb25nbyA9IGNvbnRhaW5lciAiSW52ZW50b3J5IERhdGFiYXNlIChNb25nb0RCKSIgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIkRhdGFiYXNlIGZvciBpbnZlbnRvcnkgZGF0YSAoUGFyY2VscywgSXNzdWVzLCAuLi4pLiBJbml0aWFsbHkgcmVwbGljYXRlZCBmcm9tIFNRTC4gV2lsbCByZXBsYWNlIFNRTCBhcyB0aGUgc291cmNlIG9mIHRydXRoIGxhdGVyLiIKICAgICAgICAgICAgICAgIHRlY2hub2xvZ3kgIk1vbmdvREIiCiAgICAgICAgICAgICAgICB0YWdzIERhdGFiYXNlCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIFJlbGF0aW9uc2hpcHMKCiAgICAgICAgICAgIGludmVudG9yeUFwaVNxbCAtPiBpbnZlbnRvcnlEYlNxbCAiUmVhZHMgZnJvbSIKICAgICAgICAgICAgaW52ZW50b3J5U3VpdGUgLT4gaW52ZW50b3J5QXBpU3FsICJNYWtlcyBBUEkgY2FsbHMgdG8iICJIVFRQL0pTT04iCiAgICAgICAgICAgIGludmVudG9yeVN1aXRlIC0+IGludmVudG9yeURiU3FsICJSZWFkcyBmcm9tIGFuZCB3cml0ZXMgdG8iCiAgICAgICAgICAgIG1tRGNwIC0+IGludmVudG9yeURiU3FsICJTdWJzY3JpYmVzIHRvIGNoYW5nZXMgaW4iICJDREMiCiAgICAgICAgICAgIGludmVudG9yeURhdGFTeW5jIC0+IG1tRGNwICJSZWNlaXZlcyBkYXRhIGNoYW5nZSBtZXNzYWdlcyBmcm9tIiAiU05TL1NRUyIKICAgICAgICAgICAgaW52ZW50b3J5RGF0YVN5bmMgLT4gaW52ZW50b3J5QXBpU3FsICJNYWtlcyByZWFkeS1vbmx5IEFQSSBjYWxscyB0byIgIkhUVFAvSlNPTiIKICAgICAgICAgICAgaW52ZW50b3J5RGF0YVN5bmMgLT4gaW52ZW50b3J5RGJNb25nbyAiV3JpdGVzIHRvIgogICAgICAgICAgICBpbnZlbnRvcnlBcGlNb25nbyAtPiBpbnZlbnRvcnlEYk1vbmdvICJSZWFkcyBmcm9tIgogICAgICAgICAgICBpbnZlbnRvcnlBcGlNb25nbyAtPiBpbnZlbnRvcnlEaXNwYXRjaGVyICJRdWV1ZXMgcmVxdWVzdHMgZm9yIHByb2Nlc3NpbmcgYnkiICJTUVMiIHsKICAgICAgICAgICAgICAgIHRhZ3MgVE9ETwogICAgICAgICAgICB9CiAgICAgICAgICAgIGludmVudG9yeURpc3BhdGNoZXIgLT4gaW52ZW50b3J5RGJNb25nbyAiV3JpdGVzIHRvIiB7CiAgICAgICAgICAgICAgICB0YWdzIFRPRE8KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgc3RyZWFxID0gc29mdHdhcmVTeXN0ZW0gIlNUUkVBUSIgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiTWFudWZhY3R1cmluZyBFeGVjdXRpb24gU3lzdGVtIChNRVMpIHNlcnZpY2VzIGFuZCBhcHBzIGZvciBhZHZhbmNlZCBhbmQgc3RhbmRhcmQgcHJvZHVjdHMuIgogICAgICAgICAgICB1cmwgaHR0cHM6Ly9kZXYuYXp1cmUuY29tL3NhbXRlYy9PcGVyYXRpb25zL19naXQvU1RSRUFRLlNlcnZpY2VzCgogICAgICAgICAgICB3b3JrQXBpID0gY29udGFpbmVyICJXb3JrIEFQSSIgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlJFU1QgQVBJIHRvIHJlY29yZCBtYW51ZmFjdHVyaW5nIG9yZGVyIHdvcmsgZm9yIHNlcmlhbGl6ZWQgcGFydHMuIgogICAgICAgICAgICAgICAgdGVjaG5vbG9neSAiQVNQLk5FVCIKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcGF3c1VpID0gY29udGFpbmVyICJQQVdTIFVJIChTVFJFQVEpIiB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiUkVTVCBBUEkgdG8gcmVjb3JkIG1hbnVmYWN0dXJpbmcgb3JkZXIgd29yayBmb3Igc2VyaWFsaXplZCBwYXJ0cy4iCiAgICAgICAgICAgICAgICB0YWdzIFdlYkFwcAogICAgICAgICAgICAgICAgdGVjaG5vbG9neSAiQW5ndWxhciIKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gU1RSRUFRIGNvbnRhaW5lcnMgdGhhdCBJbnZlbnRvcnkgZG9lcyBub3QgaW50ZXJhY3Qgd2l0aCBkaXJlY3RseSBhcmUgb21pdHRlZC4KICAgICAgICAgICAgLy8gU2VlIGZ1bGwgZGV0YWlscyBpbiBodHRwczovL2Rldi5henVyZS5jb20vc2FtdGVjL09wZXJhdGlvbnMvX2dpdC9TVFJFQVEuU2VydmljZXM/dmVyc2lvbj1HQm1hc3RlciZfYT1jb250ZW50cyZwYXRoPS9kb2NzL3N0cnVjdHVyaXpyL3dvcmtzcGFjZS5kc2wKICAgICAgICB9CgogICAgICAgIHBhd3NWMSA9IHNvZnR3YXJlU3lzdGVtICJQQVdTICh2MSkiICJQcm9kdWN0aXZpdHkgYW5kIFdvcmsgU3lzdGVtIiB7CiAgICAgICAgICAgIHVybCBodHRwczovL2Rldi5henVyZS5jb20vc2FtdGVjL09wZXJhdGlvbnMvX2dpdC9QQVdTCgogICAgICAgICAgICBkYXRhU3luYyA9IGNvbnRhaW5lciAiUEFXUyBEYXRhU3luYyIgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlN5bmNzIGRhdGEgZnJvbSBTUUwtYmFzZWQgQVBJcyB0byBNb25nb0RCIGZvciB1c2FnZSBieSBQQVdTLiIKICAgICAgICAgICAgICAgIHRlY2hub2xvZ3kgIkFTUC5ORVQiCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGRhdGFXcml0ZXIgPSBjb250YWluZXIgIlBBV1MgRGF0YVdyaXRlciIgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlN5bmNzIGRhdGEgZnJvbSBTUUwtYmFzZWQgQVBJcyB0byBNb25nb0RCIGZvciB1c2FnZSBieSBQQVdTLiIKICAgICAgICAgICAgICAgIHRlY2hub2xvZ3kgIkFTUC5ORVQiCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHVpID0gY29udGFpbmVyICJQQVdTIFVJICh2MSkiICJNYW51ZmFjdHVyaW5nIG9wZXJhdG9yIHdlYiBhcHAiIHsKICAgICAgICAgICAgICAgIHRhZ3MgV2ViQXBwCiAgICAgICAgICAgICAgICB0ZWNobm9sb2d5ICJBbmd1bGFyIgogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIFBBV1MgY29udGFpbmVycyB0aGF0IEludmVudG9yeSBkb2VzIG5vdCBpbnRlcmFjdCB3aXRoIGRpcmVjdGx5IGFyZSBvbWl0dGVkLgogICAgICAgIH0KCiAgICAgICAgdHJhY2VhYmlsaXR5ID0gc29mdHdhcmVTeXN0ZW0gIlRyYWNlYWJpbGl0eSIgIkluaXRpYWwgQVBJIGFuZCBzZXJ2aWNlcyBmb3IgbWFuYWdpbmcgc2VyaWFsaXplZCBwYXJ0cy4iIHsKICAgICAgICAgICAgdXJsIGh0dHBzOi8vZGV2LmF6dXJlLmNvbS9zYW10ZWMvT3BlcmF0aW9ucy9fZ2l0L1NhbXRlYy5PcGVyYXRpb25zLlRyYWNlYWJpbGl0eS5BUEkKCiAgICAgICAgICAgIGFwaSA9IGNvbnRhaW5lciAiVHJhY2VhYmlsaXR5IEFQSSIgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlN5bmNzIGRhdGEgZnJvbSBTUUwtYmFzZWQgQVBJcyB0byBNb25nb0RCIGZvciB1c2FnZSBieSBQQVdTLiIKICAgICAgICAgICAgICAgIHRlY2hub2xvZ3kgIkFTUC5ORVQiCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGludkFzc29jaWF0ZSA9IHBlcnNvbiAiSW52ZW50b3J5IEFzc29jaWF0ZSIgIlBlcnNvbiB3aG8gbWFuYWdlcyBtYXRlcmlhbHMgY29taW5nIGluIGFuZCBvdXQgb2YgaW52ZW50b3J5LiIgewogICAgICAgICAgICAtPiBpbnZlbnRvcnkuaW52ZW50b3J5U3VpdGUgIk1hbmFnZXMgUGFyY2VscyBhbmQgSXNzdWVzIHdpdGgiCiAgICAgICAgICAgIC0+IHBhd3NWMS51aSAiQXNzaWducyBJc3N1ZXMgdG8gTWFudWZhY3R1cmluZyBPcmRlcnMgd2l0aCIKICAgICAgICAgICAgLT4gc3RyZWFxLnBhd3NVaSAiQXNzaWducyBJc3N1ZXMgdG8gTWFudWZhY3R1cmluZyBPcmRlcnMgd2l0aCIgewogICAgICAgICAgICAgICAgdGFncyBUT0RPCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGludmVudG9yeS5pbnZlbnRvcnlTdWl0ZSAtPiB0cmFjZWFiaWxpdHkuYXBpICJNYWtlcyBBUEkgY2FsbHMgdG8iICJIVFRQUy9KU09OIgoKICAgICAgICBpbnZlbnRvcnkuaW52ZW50b3J5RGlzcGF0Y2hlciAtPiBzdHJlYXEud29ya0FwaSAiTWFrZXMgQVBJIGNhbGxzIHRvIiAiSFRUUC9KU09OIgoKICAgICAgICBzdHJlYXEucGF3c1VpIC0+IGludmVudG9yeS5pbnZlbnRvcnlBcGlNb25nbyAiTWFrZXMgQVBJIGNhbGxzIHRvIiAiSFRUUC9KU09OIgoKICAgICAgICBwYXdzVjEuZGF0YVN5bmMgLT4gaW52ZW50b3J5LmludmVudG9yeUFwaVNxbCAiTWFrZXMgQVBJIGNhbGxzIHRvIiAiSFRUUC9KU09OIgoKICAgICAgICBwYXdzVjEuZGF0YVdyaXRlciAtPiB0cmFjZWFiaWxpdHkuYXBpICJNYWtlcyBBUEkgY2FsbHMgdG8iICJIVFRQL0pTT04iCgogICAgICAgIHRyYWNlYWJpbGl0eS5hcGkgLT4gaW52ZW50b3J5LmludmVudG9yeUFwaVNxbCAiTWFrZXMgQVBJIGNhbGxzIHRvIiAiSFRUUC9KU09OIgogICAgfQoKICAgIHZpZXdzIHsKICAgICAgICBzeXN0ZW1Db250ZXh0IGludmVudG9yeSAic3lzdGVtLWNvbnRleHQiIHsKICAgICAgICAgICAgdGl0bGUgIltTeXN0ZW0gQ29udGV4dF0gSW52ZW50b3J5IgogICAgICAgICAgICBpbmNsdWRlICoKICAgICAgICAgICAgYXV0b0xheW91dCBscgogICAgICAgIH0KCiAgICAgICAgY29udGFpbmVyIGludmVudG9yeSAiYWxsLWNvbnRhaW5lcnMtaW52ZW50b3J5IiB7CiAgICAgICAgICAgIHRpdGxlICJbQ29udGFpbmVyc10gTWF0ZXJpYWxzIE1hbmFnZW1lbnQgSW52ZW50b3J5IFN5c3RlbSIKICAgICAgICAgICAgaW5jbHVkZSAqCiAgICAgICAgICAgIGF1dG9MYXlvdXQgbHIKICAgICAgICB9CgogICAgICAgIHN0eWxlcyB7CiAgICAgICAgICAgIGVsZW1lbnQgIkRhdGFiYXNlIiB7CiAgICAgICAgICAgICAgICBzaGFwZSAiQ3lsaW5kZXIiCiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxlbWVudCAiV2ViQXBwIiB7CiAgICAgICAgICAgICAgICBzaGFwZSAiV2ViQnJvd3NlciIKICAgICAgICAgICAgfQogICAgICAgICAgICBlbGVtZW50ICJEZXNrdG9wQXBwIiB7CiAgICAgICAgICAgICAgICBzaGFwZSAiV2luZG93IgogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIFRPRE8gZWxlbWVudHMvcmVsYXRpb25zaGlwcyBhcmUgdGhvc2UgdGhhdCBhcmUgZG9jdW1lbnRlZCBpbiBkZXNpZ24gYnV0IG5vdCB5ZXQgaW1wbGVtZW50ZWQKICAgICAgICAgICAgcmVsYXRpb25zaGlwICJUT0RPIiB7CiAgICAgICAgICAgICAgICBzdHlsZSBzb2xpZAogICAgICAgICAgICAgICAgY29sb3IgbWVkaXVtcHVycGxlCiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxlbWVudCAiVE9ETyIgewogICAgICAgICAgICAgICAgYmFja2dyb3VuZCBtZWRpdW1wdXJwbGUKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgdGhlbWVzIGRlZmF1bHQgaHR0cHM6Ly9zdGF0aWMuc3RydWN0dXJpenIuY29tL3RoZW1lcy9hbWF6b24td2ViLXNlcnZpY2VzLTIwMjAuMDQuMzAvdGhlbWUuanNvbgogICAgfQp9"},"model":{"people":[{"id":"29","tags":"Element,Person","properties":{"structurizr.dsl.identifier":"invassociate"},"name":"Inventory Associate","description":"Person who manages materials coming in and out of inventory.","relationships":[{"id":"31","sourceId":"29","destinationId":"1","description":"Manages Parcels and Issues with","linkedRelationshipId":"30"},{"id":"30","tags":"Relationship","sourceId":"29","destinationId":"4","description":"Manages Parcels and Issues with"},{"id":"33","sourceId":"29","destinationId":"23","description":"Assigns Issues to Manufacturing Orders with","linkedRelationshipId":"32"},{"id":"34","tags":"Relationship,TODO","sourceId":"29","destinationId":"22","description":"Assigns Issues to Manufacturing Orders with"},{"id":"32","tags":"Relationship","sourceId":"29","destinationId":"26","description":"Assigns Issues to Manufacturing Orders with"},{"id":"35","sourceId":"29","destinationId":"20","description":"Assigns Issues to Manufacturing Orders with","linkedRelationshipId":"34"}],"location":"Unspecified"}],"softwareSystems":[{"id":"20","tags":"Element,Software System","url":"https://dev.azure.com/samtec/Operations/_git/STREAQ.Services","properties":{"structurizr.dsl.identifier":"streaq"},"name":"STREAQ","description":"Manufacturing Execution System (MES) services and apps for advanced and standard products.","relationships":[{"id":"46","sourceId":"20","destinationId":"7","description":"Makes API calls to","technology":"HTTP/JSON","linkedRelationshipId":"44"},{"id":"47","sourceId":"20","destinationId":"1","description":"Makes API calls to","technology":"HTTP/JSON","linkedRelationshipId":"44"}],"location":"Unspecified","containers":[{"id":"21","tags":"Element,Container","properties":{"structurizr.dsl.identifier":"streaq.workapi"},"name":"Work API","description":"REST API to record manufacturing order work for serialized parts.","technology":"ASP.NET","documentation":{}},{"id":"22","tags":"Element,Container,WebApp","properties":{"structurizr.dsl.identifier":"streaq.pawsui"},"name":"PAWS UI (STREAQ)","description":"REST API to record manufacturing order work for serialized parts.","relationships":[{"id":"45","sourceId":"22","destinationId":"1","description":"Makes API calls to","technology":"HTTP/JSON","linkedRelationshipId":"44"},{"id":"44","tags":"Relationship","sourceId":"22","destinationId":"7","description":"Makes API calls to","technology":"HTTP/JSON"}],"technology":"Angular","documentation":{}}],"documentation":{}},{"id":"1","tags":"Element,Software System","properties":{"structurizr.dsl.identifier":"inventory"},"name":"Inventory","description":"Services and applications used to manage materials in Samtec inventory.","relationships":[{"id":"38","sourceId":"1","destinationId":"28","description":"Makes API calls to","technology":"HTTPS/JSON","linkedRelationshipId":"36"},{"id":"43","sourceId":"1","destinationId":"20","description":"Makes API calls to","technology":"HTTP/JSON","linkedRelationshipId":"40"},{"id":"42","sourceId":"1","destinationId":"21","description":"Makes API calls to","technology":"HTTP/JSON","linkedRelationshipId":"40"},{"id":"39","sourceId":"1","destinationId":"27","description":"Makes API calls to","technology":"HTTPS/JSON","linkedRelationshipId":"36"}],"location":"Unspecified","containers":[{"id":"9","tags":"Element,Container,Database","properties":{"structurizr.dsl.identifier":"inventory.inventorydbmongo"},"name":"Inventory Database (MongoDB)","description":"Database for inventory data (Parcels, Issues, ...). Initially replicated from SQL. Will replace SQL as the source of truth later.","technology":"MongoDB","documentation":{}},{"id":"3","tags":"Element,Container,Database","properties":{"structurizr.dsl.identifier":"inventory.inventorydbsql"},"name":"Inventory Database (SQL)","description":"Source of truth for inventory data (Parcels, Issues, ...). Database is shared with other applications.","technology":"SQL Server","documentation":{}},{"id":"7","tags":"Element,Container","url":"https://dev.azure.com/samtec/Materials%20Management/_git/Inventory.Services?path=/src/Api","properties":{"structurizr.dsl.identifier":"inventory.inventoryapimongo"},"name":"Inventory API (Junior)","description":"Web API that provides access to Inventory data from MongoDB. Initially read-only. Will replace SQL API later.","relationships":[{"id":"18","tags":"Relationship,TODO","sourceId":"7","destinationId":"8","description":"Queues requests for processing by","technology":"SQS"},{"id":"17","tags":"Relationship","sourceId":"7","destinationId":"9","description":"Reads from"}],"technology":"ASP.NET","documentation":{}},{"id":"8","tags":"Element,Container,TODO","properties":{"structurizr.dsl.identifier":"inventory.inventorydispatcher"},"name":"Inventory Dispatcher","description":"Worker service to process queued inventory API requests asynchronously.","relationships":[{"id":"40","tags":"Relationship","sourceId":"8","destinationId":"21","description":"Makes API calls to","technology":"HTTP/JSON"},{"id":"41","sourceId":"8","destinationId":"20","description":"Makes API calls to","technology":"HTTP/JSON","linkedRelationshipId":"40"},{"id":"19","tags":"Relationship,TODO","sourceId":"8","destinationId":"9","description":"Writes to"}],"technology":"ASP.NET","documentation":{}},{"id":"5","tags":"Element,Container","url":"https://dev.azure.com/samtec/Core%20Sudden%20Services/_git/Samtec.CoreServices.MatMgmtDataChangePublisher","properties":{"structurizr.dsl.identifier":"inventory.mmdcp"},"name":"Materials Management Data Change Publisher (MM DCP)","description":"Service that publishes SQL inventory data changes to an SNS topic.","relationships":[{"id":"13","tags":"Relationship","sourceId":"5","destinationId":"3","description":"Subscribes to changes in","technology":"CDC"}],"technology":"ASP.NET","documentation":{}},{"id":"2","tags":"Element,Container","url":"https://dev.azure.com/samtec/Materials%20Management/_git/MaterialsManagement.Inventory.Api","properties":{"structurizr.dsl.identifier":"inventory.inventoryapisql"},"name":"Inventory API (Senior)","description":"Web API that provides access to Inventory data from SQL.","relationships":[{"id":"10","tags":"Relationship","sourceId":"2","destinationId":"3","description":"Reads from"}],"technology":"ASP.NET","documentation":{}},{"id":"6","tags":"Element,Container","url":"https://dev.azure.com/samtec/Materials%20Management/_git/Inventory.Services?path=/src/DataSync","properties":{"structurizr.dsl.identifier":"inventory.inventorydatasync"},"name":"Inventory DataSync","description":"Work service that replicates Inventory data from SQL to MongoDB.","relationships":[{"id":"14","tags":"Relationship","sourceId":"6","destinationId":"5","description":"Receives data change messages from","technology":"SNS/SQS"},{"id":"16","tags":"Relationship","sourceId":"6","destinationId":"9","description":"Writes to"},{"id":"15","tags":"Relationship","sourceId":"6","destinationId":"2","description":"Makes ready-only API calls to","technology":"HTTP/JSON"}],"technology":"ASP.NET","documentation":{}},{"id":"4","tags":"Element,Container,DesktopApp","url":"https://dev.azure.com/samtec/Materials%20Management/_git/InventorySuite","properties":{"structurizr.dsl.identifier":"inventory.inventorysuite"},"name":"Inventory Suite","description":"Windows Desktop aplication for managing inventory.","relationships":[{"id":"37","sourceId":"4","destinationId":"27","description":"Makes API calls to","technology":"HTTPS/JSON","linkedRelationshipId":"36"},{"id":"11","tags":"Relationship","sourceId":"4","destinationId":"2","description":"Makes API calls to","technology":"HTTP/JSON"},{"id":"36","tags":"Relationship","sourceId":"4","destinationId":"28","description":"Makes API calls to","technology":"HTTPS/JSON"},{"id":"12","tags":"Relationship","sourceId":"4","destinationId":"3","description":"Reads from and writes to"}],"technology":".NET Framework 4.7.2","documentation":{}}],"documentation":{}},{"id":"27","tags":"Element,Software System","url":"https://dev.azure.com/samtec/Operations/_git/Samtec.Operations.Traceability.API","properties":{"structurizr.dsl.identifier":"traceability"},"name":"Traceability","description":"Initial API and services for managing serialized parts.","relationships":[{"id":"59","sourceId":"27","destinationId":"1","description":"Makes API calls to","technology":"HTTP/JSON","linkedRelationshipId":"56"},{"id":"58","sourceId":"27","destinationId":"2","description":"Makes API calls to","technology":"HTTP/JSON","linkedRelationshipId":"56"}],"location":"Unspecified","containers":[{"id":"28","tags":"Element,Container","properties":{"structurizr.dsl.identifier":"traceability.api"},"name":"Traceability API","description":"Syncs data from SQL-based APIs to MongoDB for usage by PAWS.","relationships":[{"id":"56","tags":"Relationship","sourceId":"28","destinationId":"2","description":"Makes API calls to","technology":"HTTP/JSON"},{"id":"57","sourceId":"28","destinationId":"1","description":"Makes API calls to","technology":"HTTP/JSON","linkedRelationshipId":"56"}],"technology":"ASP.NET","documentation":{}}],"documentation":{}},{"id":"23","tags":"Element,Software System","url":"https://dev.azure.com/samtec/Operations/_git/PAWS","properties":{"structurizr.dsl.identifier":"pawsv1"},"name":"PAWS (v1)","description":"Productivity and Work System","relationships":[{"id":"50","sourceId":"23","destinationId":"2","description":"Makes API calls to","technology":"HTTP/JSON","linkedRelationshipId":"48"},{"id":"51","sourceId":"23","destinationId":"1","description":"Makes API calls to","technology":"HTTP/JSON","linkedRelationshipId":"48"},{"id":"54","sourceId":"23","destinationId":"28","description":"Makes API calls to","technology":"HTTP/JSON","linkedRelationshipId":"52"},{"id":"55","sourceId":"23","destinationId":"27","description":"Makes API calls to","technology":"HTTP/JSON","linkedRelationshipId":"52"}],"location":"Unspecified","containers":[{"id":"25","tags":"Element,Container","properties":{"structurizr.dsl.identifier":"pawsv1.datawriter"},"name":"PAWS DataWriter","description":"Syncs data from SQL-based APIs to MongoDB for usage by PAWS.","relationships":[{"id":"53","sourceId":"25","destinationId":"27","description":"Makes API calls to","technology":"HTTP/JSON","linkedRelationshipId":"52"},{"id":"52","tags":"Relationship","sourceId":"25","destinationId":"28","description":"Makes API calls to","technology":"HTTP/JSON"}],"technology":"ASP.NET","documentation":{}},{"id":"26","tags":"Element,Container,WebApp","properties":{"structurizr.dsl.identifier":"pawsv1.ui"},"name":"PAWS UI (v1)","description":"Manufacturing operator web app","technology":"Angular","documentation":{}},{"id":"24","tags":"Element,Container","properties":{"structurizr.dsl.identifier":"pawsv1.datasync"},"name":"PAWS DataSync","description":"Syncs data from SQL-based APIs to MongoDB for usage by PAWS.","relationships":[{"id":"48","tags":"Relationship","sourceId":"24","destinationId":"2","description":"Makes API calls to","technology":"HTTP/JSON"},{"id":"49","sourceId":"24","destinationId":"1","description":"Makes API calls to","technology":"HTTP/JSON","linkedRelationshipId":"48"}],"technology":"ASP.NET","documentation":{}}],"documentation":{}}]},"documentation":{},"views":{"systemContextViews":[{"key":"system-context","order":1,"title":"[System Context] Inventory","softwareSystemId":"1","automaticLayout":{"implementation":"Graphviz","rankDirection":"LeftRight","rankSeparation":300,"nodeSeparation":300,"edgeSeparation":0,"vertices":false},"enterpriseBoundaryVisible":true,"elements":[{"id":"1","x":0,"y":0},{"id":"23","x":0,"y":0},{"id":"27","x":0,"y":0},{"id":"29","x":0,"y":0},{"id":"20","x":0,"y":0}],"relationships":[{"id":"51"},{"id":"35"},{"id":"33"},{"id":"43"},{"id":"55"},{"id":"31"},{"id":"47"},{"id":"59"},{"id":"39"}]}],"containerViews":[{"key":"all-containers-inventory","order":2,"title":"[Containers] Materials Management Inventory System","softwareSystemId":"1","automaticLayout":{"implementation":"Graphviz","rankDirection":"LeftRight","rankSeparation":300,"nodeSeparation":300,"edgeSeparation":0,"vertices":false},"externalSoftwareSystemBoundariesVisible":false,"elements":[{"id":"23","x":0,"y":0},{"id":"27","x":0,"y":0},{"id":"29","x":0,"y":0},{"id":"2","x":0,"y":0},{"id":"3","x":0,"y":0},{"id":"4","x":0,"y":0},{"id":"5","x":0,"y":0},{"id":"6","x":0,"y":0},{"id":"7","x":0,"y":0},{"id":"8","x":0,"y":0},{"id":"9","x":0,"y":0},{"id":"20","x":0,"y":0}],"relationships":[{"id":"50"},{"id":"41"},{"id":"10"},{"id":"30"},{"id":"18"},{"id":"17"},{"id":"16"},{"id":"15"},{"id":"37"},{"id":"14"},{"id":"13"},{"id":"35"},{"id":"11"},{"id":"12"},{"id":"33"},{"id":"55"},{"id":"46"},{"id":"58"},{"id":"19"}]}],"configuration":{"branding":{},"styles":{"elements":[{"tag":"Database","shape":"Cylinder"},{"tag":"WebApp","shape":"WebBrowser"},{"tag":"DesktopApp","shape":"Window"},{"tag":"TODO","background":"#9370db"}],"relationships":[{"tag":"TODO","color":"#9370db","style":"Solid"}]},"themes":["https://static.structurizr.com/themes/default/theme.json","https://static.structurizr.com/themes/amazon-web-services-2020.04.30/theme.json"],"terminology":{},"lastSavedView":"all-containers-inventory"}}}