<?xml version="1.0"?>
<rss version="2.0">
<channel>
  <title>Coding the Architecture - process tag</title>
  <link>http://www.codingthearchitecture.com/tags/process/</link>
  <description>Software architecture for developers</description>
  <language>en</language>
  <copyright>Coding the Architecture</copyright>
  <lastBuildDate>Mon, 21 May 2012 09:41:00 GMT</lastBuildDate>
  <generator>Pebble (http://pebble.sourceforge.net)</generator>
  <docs>http://backend.userland.com/rss</docs>
  
  
  <item>
    <title>Modelling Process and Staleness</title>
    <link>http://www.codingthearchitecture.com/2012/03/09/modelling_process_and_staleness.html</link>
    
      
        <description>
          &lt;p&gt;
I went to some excellent talks last night at the &lt;a href=&#034;http://www.meetup.com/Londonjavacommunity/events/53477082/&#034;&gt;LJC night at QCon&lt;/a&gt;. Gil Tene of Azul systems and Adrian Cockroft of Netflix both gave enlightening and useful talks. The talk &#034;Modelling Process&#034; by the creator of Clojure, Rich Hickey, was especially interesting to me as it touched on several important themes.
&lt;/p&gt;
&lt;p&gt;
Rich talked (amongst other things) about how processes &#039;perceive&#039; data values and never the actual value. He compared the way processor and memory caches work to the delay that a person gets when listening or watching a distant event due to sound and light waves taking time to travel.
&lt;/p&gt;
&lt;p&gt;
I think this is a very important point. I would say that ALL data is stale as you only ever see a value at a point of time in the past. Now this may not matter at all for some data (the data may not actually be changing) or it can be incredibly important (real time prices for trading systems). How stale the data is before you process it will also vary greatly - from users sending in changes to their information via hand-written forms to electronic sensors with a direct connection.
&lt;/p&gt;
&lt;p&gt;
Rich&#039;s point (and I hope I&#039;m not misrepresenting him here) was that it&#039;s OK in most instances to send an immutable copy of required data to processes rather than insist that they always use the &#039;real&#039; value in memory. This helps avoid locking and contention. In fact the consumers of the information may see a much more realistic value as they are not waiting behind 30 other consumers who are taking it in turns to lock, read and use.
&lt;/p&gt;
&lt;p&gt;
Understanding your staleness requirements can lead to different architectural decisions.
&lt;/p&gt;
&lt;p&gt;
His &lt;a href=&#034;http://gotocon.com/dl/jaoo-aarhus-2010/slides/RichHickey_ModelingProcess.pdf&#034;&gt;presentation&lt;/a&gt; is worth a read and I really liked his &#034;Epochal Time Model&#034;.
&lt;/p&gt;
        </description>
      
      
    
    
    
    <category>How do you define software architecture?</category>
    
    <comments>http://www.codingthearchitecture.com/2012/03/09/modelling_process_and_staleness.html#comments</comments>
    <guid isPermaLink="true">http://www.codingthearchitecture.com/2012/03/09/modelling_process_and_staleness.html</guid>
    <pubDate>Fri, 09 Mar 2012 16:39:00 GMT</pubDate>
  </item>
  
  <item>
    <title>Start with the big picture</title>
    <link>http://www.codingthearchitecture.com/2009/11/18/start_with_the_big_picture.html</link>
    
      
        <description>
          &lt;p&gt;
One of the hardest things about the software architecture role is being asked to come up with a software architecture when all you&#039;re given is a set of requirements and a blank piece of paper. It&#039;s certainly one of the most fun parts of the role, but it can be a daunting prospect trying to figure out where to start and what to do. Many software teams dive straight into the code and this can initially be very productive but many teams soon start to venture down the slippery slope of constant refactoring while they try to find a design that works. Often, a little forethought is all that&#039;s needed to get the architecture definition process heading in the right direction. So where do you start?
&lt;/p&gt;

&lt;div align=&#034;center&#034;&gt;
&lt;img src=&#034;http://www.codingthearchitecture.com/images/book/start-with-the-big-picture-4.png&#034; alt=&#034;All&#034; /&gt;
&lt;/div&gt;

&lt;p&gt;
&lt;a href=&#034;http://www.codingthearchitecture.com/pages/book/start-with-the-big-picture.html&#034;&gt;Read the full essay...&lt;/a&gt;
&lt;/p&gt;
        </description>
      
      
    
    
    
    <category>How do you define software architecture?</category>
    
    <comments>http://www.codingthearchitecture.com/2009/11/18/start_with_the_big_picture.html#comments</comments>
    <guid isPermaLink="true">http://www.codingthearchitecture.com/2009/11/18/start_with_the_big_picture.html</guid>
    <pubDate>Wed, 18 Nov 2009 08:05:57 GMT</pubDate>
  </item>
  
  </channel>
</rss>

