Last active
August 29, 2015 14:04
-
-
Save mikeminutillo/da49042968d6d9f94709 to your computer and use it in GitHub Desktop.
High level DSL for describing architectures according to the model outlined in http://www.codingthearchitecture.com/2014/06/24/software_architecture_as_code.html
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. | |
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 | |
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 | |
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. | |
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 | |
container File System | |
desc Stores search indexes. | |
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 | |
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
{ | |
"softwareSystems": [ | |
{ | |
"type": "SoftwareSystem", | |
"containers": [ | |
{ | |
"technology": "Apache Tomcat 7.x", | |
"type": "Container", | |
"components": [], | |
"id": 2, | |
"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": 2, | |
"destinationId": 4 | |
}, | |
{ | |
"description": "Reads from", | |
"sourceId": 2, | |
"destinationId": 5 | |
}, | |
{ | |
"description": "Reads from", | |
"sourceId": 2, | |
"destinationId": 6 | |
} | |
] | |
}, | |
{ | |
"technology": "Standalone Java 7 application", | |
"type": "Container", | |
"components": [], | |
"id": 3, | |
"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": 3, | |
"destinationId": 4 | |
}, | |
{ | |
"description": "Reads from and writes data to", | |
"sourceId": 3, | |
"destinationId": 5 | |
}, | |
{ | |
"description": "Writes to", | |
"sourceId": 3, | |
"destinationId": 6 | |
}, | |
{ | |
"description": "Gets profile information and tweets from.", | |
"sourceId": 3, | |
"destinationId": 10 | |
}, | |
{ | |
"description": "Gets information about public code repositories from.", | |
"sourceId": 3, | |
"destinationId": 11 | |
}, | |
{ | |
"description": "Gets content using RSS and Atom feeds from.", | |
"sourceId": 3, | |
"destinationId": 12 | |
} | |
] | |
}, | |
{ | |
"technology": "MySQL 5.5.x", | |
"type": "Container", | |
"components": [], | |
"id": 4, | |
"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": 5, | |
"name": "NoSQL Data Store", | |
"description": "Stores content from RSS/Atom feeds (blog posts) and tweets.", | |
"location": "Internal", | |
"relationships": [] | |
}, | |
{ | |
"technology": null, | |
"type": "Container", | |
"components": [], | |
"id": 6, | |
"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": 10 | |
}, | |
{ | |
"description": "Gets information about public code repositories from.", | |
"sourceId": 1, | |
"destinationId": 11 | |
}, | |
{ | |
"description": "Gets content using RSS and Atom feeds from.", | |
"sourceId": 1, | |
"destinationId": 12 | |
} | |
] | |
}, | |
{ | |
"type": "SoftwareSystem", | |
"containers": [], | |
"id": 10, | |
"name": "Twitter", | |
"description": "twitter.com", | |
"location": "External", | |
"relationships": [] | |
}, | |
{ | |
"type": "SoftwareSystem", | |
"containers": [], | |
"id": 11, | |
"name": "Github", | |
"description": "github.com", | |
"location": "External", | |
"relationships": [] | |
}, | |
{ | |
"type": "SoftwareSystem", | |
"containers": [], | |
"id": 12, | |
"name": "Blogs", | |
"description": "RSS and Atom feeds", | |
"location": "External", | |
"relationships": [] | |
} | |
], | |
"people": [ | |
{ | |
"type": "Person", | |
"id": 7, | |
"name": "Anonymous User", | |
"description": "Anybody on the web", | |
"location": "External", | |
"relationships": [ | |
{ | |
"description": "View people, tribes (businesses, communities and interest groups), content, events, jobs, etc from the local tech, digital and IT sector.", | |
"sourceId": 7, | |
"destinationId": 1 | |
}, | |
{ | |
"description": "View people, tribes (businesses, communities and interest groups), content, events, jobs, etc from the local tech, digital and IT sector.", | |
"sourceId": 7, | |
"destinationId": 2 | |
} | |
] | |
}, | |
{ | |
"type": "Person", | |
"id": 8, | |
"name": "Aggregated User", | |
"description": "A user or business with content that is aggregated into the website.", | |
"location": "External", | |
"relationships": [ | |
{ | |
"description": "Manage user profile and tribe membership.", | |
"sourceId": 8, | |
"destinationId": 1 | |
}, | |
{ | |
"description": "Manage user profile and tribe membership.", | |
"sourceId": 8, | |
"destinationId": 2 | |
} | |
] | |
}, | |
{ | |
"type": "Person", | |
"id": 9, | |
"name": "Administration User", | |
"description": "A system administration user.", | |
"location": "External", | |
"relationships": [ | |
{ | |
"description": "Add people, add tribes and manage tribe membership.", | |
"sourceId": 9, | |
"destinationId": 1 | |
}, | |
{ | |
"description": "Add people, add tribes and manage tribe membership.", | |
"sourceId": 9, | |
"destinationId": 2 | |
} | |
] | |
} | |
], | |
"systemContextViews": [ | |
{ | |
"softwareSystemId": 1, | |
"description": null, | |
"type": "SystemContext", | |
"elements": [ | |
{ | |
"id": 1 | |
}, | |
{ | |
"id": 10 | |
}, | |
{ | |
"id": 11 | |
}, | |
{ | |
"id": 12 | |
}, | |
{ | |
"id": 7 | |
}, | |
{ | |
"id": 8 | |
}, | |
{ | |
"id": 9 | |
} | |
], | |
"relationships": [ | |
{ | |
"sourceId": 1, | |
"destinationId": 10 | |
}, | |
{ | |
"sourceId": 1, | |
"destinationId": 11 | |
}, | |
{ | |
"sourceId": 1, | |
"destinationId": 12 | |
}, | |
{ | |
"sourceId": 7, | |
"destinationId": 1 | |
}, | |
{ | |
"sourceId": 8, | |
"destinationId": 1 | |
}, | |
{ | |
"sourceId": 9, | |
"destinationId": 1 | |
} | |
] | |
} | |
], | |
"containerViews": [ | |
{ | |
"softwareSystemId": 1, | |
"name": "techtribes.je - Containers View", | |
"description": "", | |
"type": "Container", | |
"elements": [ | |
{ | |
"id": 10 | |
}, | |
{ | |
"id": 11 | |
}, | |
{ | |
"id": 12 | |
}, | |
{ | |
"id": 7 | |
}, | |
{ | |
"id": 8 | |
}, | |
{ | |
"id": 9 | |
}, | |
{ | |
"id": 2 | |
}, | |
{ | |
"id": 3 | |
}, | |
{ | |
"id": 4 | |
}, | |
{ | |
"id": 5 | |
}, | |
{ | |
"id": 6 | |
} | |
], | |
"relationships": [ | |
{ | |
"sourceId": 7, | |
"destinationId": 2 | |
}, | |
{ | |
"sourceId": 8, | |
"destinationId": 2 | |
}, | |
{ | |
"sourceId": 9, | |
"destinationId": 2 | |
}, | |
{ | |
"sourceId": 2, | |
"destinationId": 4 | |
}, | |
{ | |
"sourceId": 2, | |
"destinationId": 5 | |
}, | |
{ | |
"sourceId": 2, | |
"destinationId": 6 | |
}, | |
{ | |
"sourceId": 3, | |
"destinationId": 4 | |
}, | |
{ | |
"sourceId": 3, | |
"destinationId": 5 | |
}, | |
{ | |
"sourceId": 3, | |
"destinationId": 6 | |
}, | |
{ | |
"sourceId": 3, | |
"destinationId": 10 | |
}, | |
{ | |
"sourceId": 3, | |
"destinationId": 11 | |
}, | |
{ | |
"sourceId": 3, | |
"destinationId": 12 | |
} | |
] | |
} | |
] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment