<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Mark Gregory Turansky &#187; Architecture</title>
	<atom:link href="http://blog.markturansky.com/archives/category/software-architecture/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.markturansky.com</link>
	<description>software architecture &#38; engineering, code hints, sometimes philosophy, photography, life, etc.</description>
	<lastBuildDate>Wed, 29 Dec 2010 19:34:43 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>The Truth About Code Generation</title>
		<link>http://blog.markturansky.com/archives/133</link>
		<comments>http://blog.markturansky.com/archives/133#comments</comments>
		<pubDate>Sat, 16 May 2009 10:50:05 +0000</pubDate>
		<dc:creator>Mark Turansky</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Code Hints]]></category>
		<category><![CDATA[Engineering]]></category>

		<guid isPermaLink="false">http://blog.markturansky.com/archives/133</guid>
		<description><![CDATA[Code generation done right can be a very effective and highly useful tool in your toolbox.  Done wrong it could be a maintenance nightmare.  This article reflects on different types of code generation, when to use each of them, and explains some pitfalls to avoid.
WHAT CODE GENERATION ISN&#8217;T:  A SILVER BULLET

Before we explore what code [...]]]></description>
		<wfw:commentRss>http://blog.markturansky.com/archives/133/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Failure rates are cumulative</title>
		<link>http://blog.markturansky.com/archives/127</link>
		<comments>http://blog.markturansky.com/archives/127#comments</comments>
		<pubDate>Sat, 11 Apr 2009 17:21:12 +0000</pubDate>
		<dc:creator>Mark Turansky</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Engineering]]></category>

		<guid isPermaLink="false">http://blog.markturansky.com/archives/127</guid>
		<description><![CDATA[There used to be only two guarantees in life:  death and taxes.  In today&#8217;s complex IT environment, we can add a third:  Your production software systems will fail.  This is an absolute guarantee because the math is stacked against you.
Why?  Because failure rates are cumulative.  Simply put, five integrated systems each with 99.9% uptime yields [...]]]></description>
		<wfw:commentRss>http://blog.markturansky.com/archives/127/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HOW TO:  Use mini-batching to improve grid performance</title>
		<link>http://blog.markturansky.com/archives/97</link>
		<comments>http://blog.markturansky.com/archives/97#comments</comments>
		<pubDate>Fri, 25 Jul 2008 20:20:35 +0000</pubDate>
		<dc:creator>Mark Turansky</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Code Hints]]></category>
		<category><![CDATA[Engineering]]></category>

		<guid isPermaLink="false">http://blog.markturansky.com/archives/97</guid>
		<description><![CDATA[We achieved a 3.5X increase in throughput by implementing &#8220;mini-batching&#8221; in our grid-enabled jobs.
We have a parent BatchService that creates child Services where each individual Service is a unit of work.  A Service implementation might perform some calculation for a single employee of a large employer group.  When the individual Services are very fast and [...]]]></description>
		<wfw:commentRss>http://blog.markturansky.com/archives/97/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>More proof that you can&#8217;t keep a good idea down?</title>
		<link>http://blog.markturansky.com/archives/78</link>
		<comments>http://blog.markturansky.com/archives/78#comments</comments>
		<pubDate>Wed, 07 May 2008 03:18:08 +0000</pubDate>
		<dc:creator>Mark Turansky</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Engineering]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Terracotta]]></category>

		<guid isPermaLink="false">http://blog.markturansky.com/archives/78</guid>
		<description><![CDATA[In this blog article, Michael Nygard discusses a talk he attended where a technical architect discussed an SOA framework at FIDUCIA IT AG, a company in the financial services industry.  Nygard describes an architecture that echoes many of the features I implicitly spoke of in my first blog article about my big integration project [...]]]></description>
		<wfw:commentRss>http://blog.markturansky.com/archives/78/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>You can&#8217;t keep a good idea down</title>
		<link>http://blog.markturansky.com/archives/77</link>
		<comments>http://blog.markturansky.com/archives/77#comments</comments>
		<pubDate>Fri, 02 May 2008 03:25:28 +0000</pubDate>
		<dc:creator>Mark Turansky</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Terracotta]]></category>

		<guid isPermaLink="false">http://blog.markturansky.com/archives/77</guid>
		<description><![CDATA[Our message bus project was more than just replacing JMS with a POJO messaging system.  It&#8217;s a whole piece of infrastructure designed to make it easy for different folks to do their jobs.
How did we do this and why do the next couple of paragraphs sound like I&#8217;m bragging?  Because many of the [...]]]></description>
		<wfw:commentRss>http://blog.markturansky.com/archives/77/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Scalability &amp; High Availability with Terracotta Server</title>
		<link>http://blog.markturansky.com/archives/60</link>
		<comments>http://blog.markturansky.com/archives/60#comments</comments>
		<pubDate>Fri, 07 Mar 2008 21:59:35 +0000</pubDate>
		<dc:creator>Mark Turansky</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Engineering]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Terracotta]]></category>

		<guid isPermaLink="false">http://blog.markturansky.com/archives/60</guid>
		<description><![CDATA[Our message bus will be deployed to production this month.  We&#8217;re currently sailing through QA.  Whatever bugs we&#8217;ve found have been in the business logic of the messages themselves (and assorted processing classes).  Our infrastructure &#8212; the message bus backed by Terracotta &#8212; is strong.
SCALABILITY
People are asking questions about scalability.  Quite [...]]]></description>
		<wfw:commentRss>http://blog.markturansky.com/archives/60/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>InfoQ writes about my use of Terracotta Server as a message bus</title>
		<link>http://blog.markturansky.com/archives/59</link>
		<comments>http://blog.markturansky.com/archives/59#comments</comments>
		<pubDate>Thu, 06 Mar 2008 14:00:41 +0000</pubDate>
		<dc:creator>Mark Turansky</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Terracotta]]></category>

		<guid isPermaLink="false">http://blog.markturansky.com/archives/59</guid>
		<description><![CDATA[Check out this article on InfoQ about using Terracotta Server as a message bus!
]]></description>
		<wfw:commentRss>http://blog.markturansky.com/archives/59/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Some wheels need reinventing</title>
		<link>http://blog.markturansky.com/archives/45</link>
		<comments>http://blog.markturansky.com/archives/45#comments</comments>
		<pubDate>Thu, 21 Feb 2008 11:16:34 +0000</pubDate>
		<dc:creator>Mark Turansky</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Engineering]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Terracotta]]></category>

		<guid isPermaLink="false">http://blog.markturansky.com/archives/45</guid>
		<description><![CDATA[Reinventing a square wheel is a common anti-pattern.  The idea is a) we don&#8217;t need to reinvent the wheel because b) we&#8217;re likely to recreate it poorly compared to what is already available.  But if we never reinvent any wheels, then we never progress beyond what we have.  The real question, then, [...]]]></description>
		<wfw:commentRss>http://blog.markturansky.com/archives/45/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Terracotta Server as a Message Bus</title>
		<link>http://blog.markturansky.com/archives/26</link>
		<comments>http://blog.markturansky.com/archives/26#comments</comments>
		<pubDate>Fri, 25 Jan 2008 20:39:46 +0000</pubDate>
		<dc:creator>Mark Turansky</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Engineering]]></category>
		<category><![CDATA[Terracotta]]></category>

		<guid isPermaLink="false">http://blog.markturansky.com/archives/26</guid>
		<description><![CDATA[Terracotta is excellent software to glue messaging components together.  This article is a high-level view of how we used TC to create our own messaging backbone.
Just a few weeks ago I made two predictions for 2008, but both centered around Terracotta.  Since that time, I&#8217;ve gone deeper into the server and used it [...]]]></description>
		<wfw:commentRss>http://blog.markturansky.com/archives/26/feed</wfw:commentRss>
		<slash:comments>37</slash:comments>
		</item>
		<item>
		<title>Canaries in the coal mine</title>
		<link>http://blog.markturansky.com/archives/29</link>
		<comments>http://blog.markturansky.com/archives/29#comments</comments>
		<pubDate>Mon, 21 Jan 2008 23:39:25 +0000</pubDate>
		<dc:creator>Mark Turansky</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Engineering]]></category>

		<guid isPermaLink="false">http://blog.markturansky.com/archives/29</guid>
		<description><![CDATA[Application logging is only as useful as your plan to actually use the logs.  Without a plan to mine the data, collect metrics, and plot graphs, your logs are useless.  It&#8217;s snowcrash in a console window.  It&#8217;s gigs of spam in a file.
This reminds me of the Philosophy and Zen of Unix:

Rule [...]]]></description>
		<wfw:commentRss>http://blog.markturansky.com/archives/29/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Tech predictions for 2008</title>
		<link>http://blog.markturansky.com/archives/18</link>
		<comments>http://blog.markturansky.com/archives/18#comments</comments>
		<pubDate>Wed, 02 Jan 2008 12:33:53 +0000</pubDate>
		<dc:creator>Mark Turansky</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Terracotta]]></category>

		<guid isPermaLink="false">http://blog.markturansky.com/archives/18</guid>
		<description><![CDATA[Fancying myself as a wise prognosticator is fun, so I&#8217;ll lay down down a guess or two about technology in 2008.
OPEN TERRACOTTA
First, I am overwhelmed with ideas and potential uses for Open Terracotta as well as mystified and amazed by its ease of use.
I am a curmudgeon for most technologies.  I&#8217;ve got a healthy [...]]]></description>
		<wfw:commentRss>http://blog.markturansky.com/archives/18/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Performance != Scalability</title>
		<link>http://blog.markturansky.com/archives/15</link>
		<comments>http://blog.markturansky.com/archives/15#comments</comments>
		<pubDate>Thu, 20 Dec 2007 12:41:13 +0000</pubDate>
		<dc:creator>Mark Turansky</dc:creator>
				<category><![CDATA[Architecture]]></category>

		<guid isPermaLink="false">http://blog.markturansky.com/archives/15</guid>
		<description><![CDATA[Performance and scalability are not the same.
It is insufficient to run through a QA environment and say, &#8220;Everything seems fast enough!&#8221;  You may load test the same QA environment and conclude that performance is good, so you&#8217;ll be able to scale.  You may be wrong!  Performance and scalability are two very different [...]]]></description>
		<wfw:commentRss>http://blog.markturansky.com/archives/15/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Saving database cycles</title>
		<link>http://blog.markturansky.com/archives/14</link>
		<comments>http://blog.markturansky.com/archives/14#comments</comments>
		<pubDate>Sat, 15 Dec 2007 11:55:46 +0000</pubDate>
		<dc:creator>Mark Turansky</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[clustering]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[scaling]]></category>

		<guid isPermaLink="false">http://blog.markturansky.com/archives/14</guid>
		<description><![CDATA[I once read a great quote:
Oracle may scale technologically, but it doesn&#8217;t scale financially
We run Oracle in our shop, and we&#8217;ve got a big database.  Hundreds of tables.  Millions and millions of rows of data.  Extensive and detailed audit records of every database transaction.  We recently deployed Oracle RAC to help [...]]]></description>
		<wfw:commentRss>http://blog.markturansky.com/archives/14/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

