Created
July 18, 2014 17:45
-
-
Save mikeminutillo/f8a5d66c53c1e27d64fe to your computer and use it in GitHub Desktop.
Architecture Definition DSL - Multi-file with components
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
internal system techtribes.je | |
desc techtribes.je is the only way to keep up to date with the IT, tech and digital sector in Jersey and Guernsey, Channel Islands | |
uses Twitter | |
Gets profile information and tweets from. | |
uses Github | |
Gets information about public code repositories from. | |
uses Blogs | |
Gets content using RSS and Atom feeds from. | |
external person Anonymous User | |
desc Anybody on the web | |
uses techtribes.je | |
View people, tribes (businesses, communities and interest groups), content, events, jobs, etc from the local tech, digital and IT sector. | |
uses Web Application | |
View people, tribes (businesses, communities and interest groups), content, events, jobs, etc from the local tech, digital and IT sector. | |
external person Aggregated User | |
desc A user or business with content that is aggregated into the website. | |
uses techtribes.je | |
Manage user profile and tribe membership. | |
uses Web Application | |
Manage user profile and tribe membership. | |
external person Administration User | |
desc A system administration user. | |
uses techtribes.je | |
Add people, add tribes and manage tribe membership. | |
uses Web Application | |
Add people, add tribes and manage tribe membership. | |
external system Twitter | |
desc twitter.com | |
external system Github | |
desc github.com | |
external system Blogs | |
desc RSS and Atom feeds | |
view context techtribes.je |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
container Web Application | |
desc Allows users to view people, tribes, content, events, jobs, etc from the local tech, digital and IT sector. | |
tech Apache Tomcat 7.x | |
system techtribes.je | |
uses Relational Database | |
Reads from and writes data to | |
uses NoSQL Data Store | |
Reads from | |
uses File System | |
Reads from | |
container Content Updater | |
desc Updates profiles, tweets, GitHub repos and content on a scheduled basis. | |
tech Standalone Java 7 application | |
system techtribes.je | |
uses Relational Database | |
Reads from and writes data to | |
uses NoSQL Data Store | |
Reads from and writes data to | |
uses File System | |
Writes to | |
uses Twitter | |
Gets profile information and tweets from. | |
uses Github | |
Gets information about public code repositories from. | |
uses Blogs | |
Gets content using RSS and Atom feeds from. | |
container Relational Database | |
desc Stores people, tribes, tribe membership, talks, events, jobs, badges, GitHub repos, etc. | |
system techtribes.je | |
tech MySQL 5.5.x | |
container NoSQL Data Store | |
desc Stores content from RSS/Atom feeds (blog posts) and tweets. | |
tech MongoDB 2.2.x | |
system techtribes.je | |
container File System | |
desc Stores search indexes. | |
system techtribes.je | |
view containers techtribes.je |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
component LoggingComponent | |
container Content Updater | |
desc Does Logging | |
component BadgeComponent | |
container Content Updater | |
desc Manages the badges that have been awarded to people and tribes. | |
uses Relational Database | |
Reads from and writes to | |
uses LoggingComponent | |
component ActivityComponent | |
container Content Updater | |
desc Provides access to information about, and calculates, the recent activity rankings. | |
uses Relational Database | |
Reads from and writes to | |
uses LoggingComponent | |
component TalkComponent | |
container Content Updater | |
desc Provides access to information about talks by local speakers. | |
uses Relational Database | |
Reads from and writes to | |
uses LoggingComponent | |
component TweetComponent | |
container Content Updater | |
desc Provides access to tweets. | |
uses NoSQL Data Store | |
Reads from and writes to | |
uses LoggingComponent | |
component NewsFeedEntryComponent | |
container Content Updater | |
desc Provides access to blog entries and news. | |
uses NoSQL Data Store | |
Reads from and writes to | |
uses LoggingComponent | |
component BadgeAwarder | |
container Content Updater | |
desc Awards Badges to people and tribes based upon recent activity. | |
uses BadgeComponent | |
Reads from and writes to | |
uses ActivityComponent | |
uses TweetComponent | |
uses NewsFeedEntryComponent | |
uses TalkComponent | |
uses LoggingComponent | |
view components Content Updater | |
exclude LoggingComponent |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"softwareSystems": [ | |
{ | |
"type": "SoftwareSystem", | |
"containers": [ | |
{ | |
"technology": "Apache Tomcat 7.x", | |
"type": "Container", | |
"components": [], | |
"id": 8, | |
"name": "Web Application", | |
"description": "Allows users to view people, tribes, content, events, jobs, etc from the local tech, digital and IT sector.", | |
"location": "Internal", | |
"relationships": [ | |
{ | |
"description": "Reads from and writes data to", | |
"sourceId": 8, | |
"destinationId": 10 | |
}, | |
{ | |
"description": "Reads from", | |
"sourceId": 8, | |
"destinationId": 11 | |
}, | |
{ | |
"description": "Reads from", | |
"sourceId": 8, | |
"destinationId": 12 | |
} | |
] | |
}, | |
{ | |
"technology": "Standalone Java 7 application", | |
"type": "Container", | |
"components": [ | |
{ | |
"type": "Component", | |
"technology": null, | |
"implementationType": null, | |
"interfaceType": null, | |
"id": 13, | |
"name": "LoggingComponent", | |
"description": "Does Logging", | |
"location": "Internal", | |
"relationships": [] | |
}, | |
{ | |
"type": "Component", | |
"technology": null, | |
"implementationType": null, | |
"interfaceType": null, | |
"id": 14, | |
"name": "BadgeComponent", | |
"description": "Manages the badges that have been awarded to people and tribes.", | |
"location": "Internal", | |
"relationships": [ | |
{ | |
"description": "Reads from and writes to", | |
"sourceId": 14, | |
"destinationId": 10 | |
}, | |
{ | |
"description": null, | |
"sourceId": 14, | |
"destinationId": 13 | |
} | |
] | |
}, | |
{ | |
"type": "Component", | |
"technology": null, | |
"implementationType": null, | |
"interfaceType": null, | |
"id": 15, | |
"name": "ActivityComponent", | |
"description": "Provides access to information about, and calculates, the recent activity rankings.", | |
"location": "Internal", | |
"relationships": [ | |
{ | |
"description": "Reads from and writes to", | |
"sourceId": 15, | |
"destinationId": 10 | |
}, | |
{ | |
"description": null, | |
"sourceId": 15, | |
"destinationId": 13 | |
} | |
] | |
}, | |
{ | |
"type": "Component", | |
"technology": null, | |
"implementationType": null, | |
"interfaceType": null, | |
"id": 16, | |
"name": "TalkComponent", | |
"description": "Provides access to information about talks by local speakers.", | |
"location": "Internal", | |
"relationships": [ | |
{ | |
"description": "Reads from and writes to", | |
"sourceId": 16, | |
"destinationId": 10 | |
}, | |
{ | |
"description": null, | |
"sourceId": 16, | |
"destinationId": 13 | |
} | |
] | |
}, | |
{ | |
"type": "Component", | |
"technology": null, | |
"implementationType": null, | |
"interfaceType": null, | |
"id": 17, | |
"name": "TweetComponent", | |
"description": "Provides access to tweets.", | |
"location": "Internal", | |
"relationships": [ | |
{ | |
"description": "Reads from and writes to", | |
"sourceId": 17, | |
"destinationId": 11 | |
}, | |
{ | |
"description": null, | |
"sourceId": 17, | |
"destinationId": 13 | |
} | |
] | |
}, | |
{ | |
"type": "Component", | |
"technology": null, | |
"implementationType": null, | |
"interfaceType": null, | |
"id": 18, | |
"name": "NewsFeedEntryComponent", | |
"description": "Provides access to blog entries and news.", | |
"location": "Internal", | |
"relationships": [ | |
{ | |
"description": "Reads from and writes to", | |
"sourceId": 18, | |
"destinationId": 11 | |
}, | |
{ | |
"description": null, | |
"sourceId": 18, | |
"destinationId": 13 | |
} | |
] | |
}, | |
{ | |
"type": "Component", | |
"technology": null, | |
"implementationType": null, | |
"interfaceType": null, | |
"id": 19, | |
"name": "BadgeAwarder", | |
"description": "Awards Badges to people and tribes based upon recent activity.", | |
"location": "Internal", | |
"relationships": [ | |
{ | |
"description": "Reads from and writes to", | |
"sourceId": 19, | |
"destinationId": 14 | |
}, | |
{ | |
"description": null, | |
"sourceId": 19, | |
"destinationId": 15 | |
}, | |
{ | |
"description": null, | |
"sourceId": 19, | |
"destinationId": 17 | |
}, | |
{ | |
"description": null, | |
"sourceId": 19, | |
"destinationId": 18 | |
}, | |
{ | |
"description": null, | |
"sourceId": 19, | |
"destinationId": 16 | |
}, | |
{ | |
"description": null, | |
"sourceId": 19, | |
"destinationId": 13 | |
} | |
] | |
} | |
], | |
"id": 9, | |
"name": "Content Updater", | |
"description": "Updates profiles, tweets, GitHub repos and content on a scheduled basis.", | |
"location": "Internal", | |
"relationships": [ | |
{ | |
"description": "Reads from and writes data to", | |
"sourceId": 9, | |
"destinationId": 10 | |
}, | |
{ | |
"description": "Reads from and writes data to", | |
"sourceId": 9, | |
"destinationId": 11 | |
}, | |
{ | |
"description": "Writes to", | |
"sourceId": 9, | |
"destinationId": 12 | |
}, | |
{ | |
"description": "Gets profile information and tweets from.", | |
"sourceId": 9, | |
"destinationId": 5 | |
}, | |
{ | |
"description": "Gets information about public code repositories from.", | |
"sourceId": 9, | |
"destinationId": 6 | |
}, | |
{ | |
"description": "Gets content using RSS and Atom feeds from.", | |
"sourceId": 9, | |
"destinationId": 7 | |
} | |
] | |
}, | |
{ | |
"technology": "MySQL 5.5.x", | |
"type": "Container", | |
"components": [], | |
"id": 10, | |
"name": "Relational Database", | |
"description": "Stores people, tribes, tribe membership, talks, events, jobs, badges, GitHub repos, etc.", | |
"location": "Internal", | |
"relationships": [] | |
}, | |
{ | |
"technology": "MongoDB 2.2.x", | |
"type": "Container", | |
"components": [], | |
"id": 11, | |
"name": "NoSQL Data Store", | |
"description": "Stores content from RSS/Atom feeds (blog posts) and tweets.", | |
"location": "Internal", | |
"relationships": [] | |
}, | |
{ | |
"technology": null, | |
"type": "Container", | |
"components": [], | |
"id": 12, | |
"name": "File System", | |
"description": "Stores search indexes.", | |
"location": "Internal", | |
"relationships": [] | |
} | |
], | |
"id": 1, | |
"name": "techtribes.je", | |
"description": "techtribes.je is the only way to keep up to date with the IT, tech and digital sector in Jersey and Guernsey, Channel Islands", | |
"location": "Internal", | |
"relationships": [ | |
{ | |
"description": "Gets profile information and tweets from.", | |
"sourceId": 1, | |
"destinationId": 5 | |
}, | |
{ | |
"description": "Gets information about public code repositories from.", | |
"sourceId": 1, | |
"destinationId": 6 | |
}, | |
{ | |
"description": "Gets content using RSS and Atom feeds from.", | |
"sourceId": 1, | |
"destinationId": 7 | |
} | |
] | |
}, | |
{ | |
"type": "SoftwareSystem", | |
"containers": [], | |
"id": 5, | |
"name": "Twitter", | |
"description": "twitter.com", | |
"location": "Internal", | |
"relationships": [] | |
}, | |
{ | |
"type": "SoftwareSystem", | |
"containers": [], | |
"id": 6, | |
"name": "Github", | |
"description": "github.com", | |
"location": "Internal", | |
"relationships": [] | |
}, | |
{ | |
"type": "SoftwareSystem", | |
"containers": [], | |
"id": 7, | |
"name": "Blogs", | |
"description": "RSS and Atom feeds", | |
"location": "Internal", | |
"relationships": [] | |
} | |
], | |
"people": [ | |
{ | |
"type": "Person", | |
"id": 2, | |
"name": "Anonymous User", | |
"description": "Anybody on the web", | |
"location": "Internal", | |
"relationships": [ | |
{ | |
"description": "View people, tribes (businesses, communities and interest groups), content, events, jobs, etc from the local tech, digital and IT sector.", | |
"sourceId": 2, | |
"destinationId": 1 | |
}, | |
{ | |
"description": "View people, tribes (businesses, communities and interest groups), content, events, jobs, etc from the local tech, digital and IT sector.", | |
"sourceId": 2, | |
"destinationId": 8 | |
} | |
] | |
}, | |
{ | |
"type": "Person", | |
"id": 3, | |
"name": "Aggregated User", | |
"description": "A user or business with content that is aggregated into the website.", | |
"location": "Internal", | |
"relationships": [ | |
{ | |
"description": "Manage user profile and tribe membership.", | |
"sourceId": 3, | |
"destinationId": 1 | |
}, | |
{ | |
"description": "Manage user profile and tribe membership.", | |
"sourceId": 3, | |
"destinationId": 8 | |
} | |
] | |
}, | |
{ | |
"type": "Person", | |
"id": 4, | |
"name": "Administration User", | |
"description": "A system administration user.", | |
"location": "Internal", | |
"relationships": [ | |
{ | |
"description": "Add people, add tribes and manage tribe membership.", | |
"sourceId": 4, | |
"destinationId": 1 | |
}, | |
{ | |
"description": "Add people, add tribes and manage tribe membership.", | |
"sourceId": 4, | |
"destinationId": 8 | |
} | |
] | |
} | |
], | |
"systemContextViews": [ | |
{ | |
"type": "SystemContext", | |
"name": null, | |
"description": "", | |
"elements": [ | |
{ | |
"id": 1 | |
}, | |
{ | |
"id": 5 | |
}, | |
{ | |
"id": 6 | |
}, | |
{ | |
"id": 7 | |
}, | |
{ | |
"id": 2 | |
}, | |
{ | |
"id": 3 | |
}, | |
{ | |
"id": 4 | |
} | |
], | |
"softwareSystemId": 1, | |
"relationships": [ | |
{ | |
"sourceId": 1, | |
"destinationId": 5 | |
}, | |
{ | |
"sourceId": 1, | |
"destinationId": 6 | |
}, | |
{ | |
"sourceId": 1, | |
"destinationId": 7 | |
}, | |
{ | |
"sourceId": 2, | |
"destinationId": 1 | |
}, | |
{ | |
"sourceId": 3, | |
"destinationId": 1 | |
}, | |
{ | |
"sourceId": 4, | |
"destinationId": 1 | |
} | |
] | |
} | |
], | |
"containerViews": [ | |
{ | |
"type": "Container", | |
"name": "techtribes.je - Containers", | |
"description": "", | |
"elements": [ | |
{ | |
"id": 5 | |
}, | |
{ | |
"id": 6 | |
}, | |
{ | |
"id": 7 | |
}, | |
{ | |
"id": 2 | |
}, | |
{ | |
"id": 3 | |
}, | |
{ | |
"id": 4 | |
}, | |
{ | |
"id": 8 | |
}, | |
{ | |
"id": 9 | |
}, | |
{ | |
"id": 10 | |
}, | |
{ | |
"id": 11 | |
}, | |
{ | |
"id": 12 | |
} | |
], | |
"softwareSystemId": 1, | |
"relationships": [ | |
{ | |
"sourceId": 2, | |
"destinationId": 8 | |
}, | |
{ | |
"sourceId": 3, | |
"destinationId": 8 | |
}, | |
{ | |
"sourceId": 4, | |
"destinationId": 8 | |
}, | |
{ | |
"sourceId": 8, | |
"destinationId": 10 | |
}, | |
{ | |
"sourceId": 8, | |
"destinationId": 11 | |
}, | |
{ | |
"sourceId": 8, | |
"destinationId": 12 | |
}, | |
{ | |
"sourceId": 9, | |
"destinationId": 10 | |
}, | |
{ | |
"sourceId": 9, | |
"destinationId": 11 | |
}, | |
{ | |
"sourceId": 9, | |
"destinationId": 12 | |
}, | |
{ | |
"sourceId": 9, | |
"destinationId": 5 | |
}, | |
{ | |
"sourceId": 9, | |
"destinationId": 6 | |
}, | |
{ | |
"sourceId": 9, | |
"destinationId": 7 | |
} | |
] | |
} | |
], | |
"componentViews": [ | |
{ | |
"containerId": 9, | |
"type": "Component", | |
"name": "techtribes.je - Content Updater - Components", | |
"description": "", | |
"elements": [ | |
{ | |
"id": 8 | |
}, | |
{ | |
"id": 10 | |
}, | |
{ | |
"id": 11 | |
}, | |
{ | |
"id": 12 | |
}, | |
{ | |
"id": 14 | |
}, | |
{ | |
"id": 15 | |
}, | |
{ | |
"id": 16 | |
}, | |
{ | |
"id": 17 | |
}, | |
{ | |
"id": 18 | |
}, | |
{ | |
"id": 19 | |
} | |
], | |
"softwareSystemId": 1, | |
"relationships": [ | |
{ | |
"sourceId": 8, | |
"destinationId": 10 | |
}, | |
{ | |
"sourceId": 8, | |
"destinationId": 11 | |
}, | |
{ | |
"sourceId": 8, | |
"destinationId": 12 | |
}, | |
{ | |
"sourceId": 14, | |
"destinationId": 10 | |
}, | |
{ | |
"sourceId": 15, | |
"destinationId": 10 | |
}, | |
{ | |
"sourceId": 16, | |
"destinationId": 10 | |
}, | |
{ | |
"sourceId": 17, | |
"destinationId": 11 | |
}, | |
{ | |
"sourceId": 18, | |
"destinationId": 11 | |
}, | |
{ | |
"sourceId": 19, | |
"destinationId": 14 | |
}, | |
{ | |
"sourceId": 19, | |
"destinationId": 15 | |
}, | |
{ | |
"sourceId": 19, | |
"destinationId": 17 | |
}, | |
{ | |
"sourceId": 19, | |
"destinationId": 18 | |
}, | |
{ | |
"sourceId": 19, | |
"destinationId": 16 | |
} | |
] | |
} | |
] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment