links for 2009-09-18

Researchers at the SEI and the Carnegie Mellon School of Computer Science set out to answer the question: "How should you document an architecture so that others can successfully use it, maintain it, and build a system from it?" The result of that work is an approach we call "Views and Beyond" or "V&B". The template that's used for a software architecture document that's based on the Views and Beyond approach is available.

Summary
The story about the six blind men teaches you to be careful of having a myopic view. Architecture viewpoints provide a broadminded view of both the problem and the solution. The Functional Requirement, Non Functional Qualities, and Domain Model viewpoints provide a high level understanding of the "what". The Conceptual, Architecture Scenario, Deployment, and Infrastructure viewpoints clearly articulate the "how."

In this article I would like to share ten tips for effective presentation of architectural information I've learned from Tufte and others (sometimes the hard way) which have helped me and will hopefully help you become a better software architect.

Cassandra is a highly scalable, eventually consistent, distributed, structured key-value store. Cassandra brings together the distributed systems technologies from Dynamo and the data model from Google's BigTable. Like Dynamo, Cassandra is eventually consistent. Like BigTable, Cassandra provides a ColumnFamily-based data model richer than typical key/value systems.

For the last month or two the Digg engineering team has spent quite a bit of time looking into, playing with and finally deploying Cassandra in production. It’s been a super fun project to take on – but even before the fun began we had to spend quite a bit of time figuring out Cassandra’s data model… the phrase “WTF is a ’super column’” was uttered quite a few times.