Good question. I have not used CWA in a long time, but I will do my best to explain. CWA is a product/module/architecture which allows you to store all of your content in the Broker Database. You then have a CWA enabled web application which uses OOTB JAR files to retrieve the content (i.e. Pages and their component presentations as well as binary files like images). CWA still requires you to write templates on the Content Management side in order to render the component presentations (and optionally the page views) DD4T on the other hand, is (as you state) an open source project which is not supported by SDL (but I believe they do use it themselves). DD4T partly grew out of the lack of a .NET based CWA offering. One thing it offers that CWA does not, is a standard set of templates, which means that developers need little or no knowledge of the Tridion Content Manager to start developing. Personally I have not used the Java version of DD4T, but the .NET version is great. One big plus of it being open source, is that there are a lot of people sharing their ideas on it. You might notice, at this point in time there are only 4 #CWA questions on here, and over 160 #DD4T ones. At the end of the day, you need to build your own web application which will never be supported by SDL, so the only thing you get from using CWA is a few extra JAR files, whereas DD4T uses only supported methods of retrieving data from the Content Broker anyway (so really is no riskier, but you benefit from not needing to right as much code yourself).