Return-Path: Delivered-To: apmail-cxf-dev-archive@www.apache.org Received: (qmail 68572 invoked from network); 21 Feb 2011 17:56:50 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 21 Feb 2011 17:56:50 -0000 Received: (qmail 2482 invoked by uid 500); 21 Feb 2011 17:56:50 -0000 Delivered-To: apmail-cxf-dev-archive@cxf.apache.org Received: (qmail 2153 invoked by uid 500); 21 Feb 2011 17:56:47 -0000 Mailing-List: contact dev-help@cxf.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cxf.apache.org Delivered-To: mailing list dev@cxf.apache.org Received: (qmail 2145 invoked by uid 99); 21 Feb 2011 17:56:46 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 21 Feb 2011 17:56:46 +0000 X-ASF-Spam-Status: No, hits=0.7 required=5.0 tests=SPF_NEUTRAL X-Spam-Check-By: apache.org Received-SPF: neutral (athena.apache.org: local policy) Received: from [64.85.173.253] (HELO server.dankulp.com) (64.85.173.253) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 21 Feb 2011 17:56:40 +0000 Received: by server.dankulp.com (Postfix, from userid 5000) id 02D80188AFD; Mon, 21 Feb 2011 12:56:19 -0500 (EST) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on server.dankulp.com X-Spam-Level: X-Msg-File: /tmp/mailfilter-dev@cxf.apache.org.Oo50WobJHx Received: from dilbert.dankulp.com (c-24-91-72-253.hsd1.ma.comcast.net [24.91.72.253]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by server.dankulp.com (Postfix) with ESMTPSA id 2FC5418840D; Mon, 21 Feb 2011 12:56:18 -0500 (EST) From: Daniel Kulp To: dev@cxf.apache.org Subject: Re: [Discuss] CXF Architecture and Architecture Documentation Date: Mon, 21 Feb 2011 12:56:08 -0500 User-Agent: KMail/1.13.6 (Linux/2.6.37; KDE/4.6.0; x86_64; ; ) Cc: Christian Schneider References: <4D5FB819.8030207@die-schneider.net> In-Reply-To: <4D5FB819.8030207@die-schneider.net> MIME-Version: 1.0 Content-Type: Text/Plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <201102211256.08422.dkulp@apache.org> X-Old-Spam-Status: No, score=-102.9 required=3.0 tests=ALL_TRUSTED,BAYES_00, SHORTCIRCUIT shortcircuit=ham autolearn=disabled version=3.3.1 > "Architecture is the sum of the decisions about a project that are the > most expensive to change later. " The "decision" to not have up to date achitecture docs is one of the =20 "decisions about a project that are the most expensive to change later". = :-) Not saying it shouldn't be fixed, it's just going to be expensive to fix fr= om=20 a time perspective. :-) Dan On Saturday 19 February 2011 7:31:21 AM Christian Schneider wrote: > Hi All, >=20 > I know that the theme is a big one and likely will spawn some larger > discussion still I think it is important to talk about it and to have a > common understanding. > When digging into some not so obvious issues I repeatedly stumble about > the fact that there are important things about CXF that I don=C2=B4t know= or > only have a vague clue of. > Another problem I often had is where to put new stuff or decide if a > classs is placed at a location where it should not be. >=20 > These examples show in my opinion that we do not have a good > architecture documentation and no clean process to decide about > architecture and to document decisions. So I propose some things > and we see if we reach a consensus. >=20 > The first thing is a question that always pops up and that is not so > easy. What is architecture? > I once read a nice definition that is quite open but still catches what > is important: > "Architecture is the sum of the decisions about a project that are the > most expensive to change later. " > Sorry that I am not able to point to a concret source of this. I think > this definition catches the important thing about architecture. It > should cover only those things that may later bite you. > So for example the decision it can be argued if the decision for a > logging framework is an architectural decision as we saw in Apache Camel > how fast they were able to switch to slf4j. So this was nothing > that was expensive to change. In any case I am curious what you guys > consider as a good definition for an architecture. >=20 > I would like to come to a consensus about what we define as architecture > as a first starting point. >=20 > The next thing is how to document our architecture. We have a good > starting point at > https://cwiki.apache.org/confluence/display/CXF20DOC/CXF+Architecture > but I think some important things are lacking. This page > describes the key structural elements and how some key elements work > together in CXF. That is very important and we should simply try to > improve it. I would also like to add our common definition of what > architecture is to that document. >=20 > The first thing I would like to add are architectural goals. An > architecture can never be good in itself. It can only be judged against > the goals it tries to achieve. Here again we should only track the most > important goals. >=20 > The second thing I would like to add is a page about architectural > decisions. It should contain a short description of the process how we > do these decisions and a list of decisions in a well defined format. I > would also like > to limit the decisions to a certain number so we are sure that only the > most important decisions are tracked. I added such a page as my proposal > and we should discuss if this is ok for all. As I have no idea how many > decisions we should track I think we could simply start and keep in mind > that it should not grow too large. See > https://cwiki.apache.org/confluence/display/CXF20DOC/Architectural+Decisi= on > s >=20 > I hope we reach a consensus about these things as I think they are very > important. >=20 > Christian =2D-=20 Daniel Kulp dkulp@apache.org http://dankulp.com/blog Talend - http://www.talend.com