﻿<?xml version="1.0" encoding="utf-8"?><rss version="2.0"><channel><title>Ayende @ Rahien</title><link>http://ayende.com</link><description>Ayende @ Rahien</description><copyright>Copyright (C) Ayende Rahien  2004 - 2021 (c) 2026</copyright><ttl>60</ttl><item><title>Ivan K commented on Solving problems with messaging: Creating a new user</title><description>The end result is the system COMPROMISED...
  
What a Freudian slip of tongue :-)
  
  
On a more serious note, after a brief reading, frankly I am missing the point here. How exactly the whole async messaging saga falls into one class? Would it be different or same in the sync scenario?
</description><link>http://ayende.com/3889/solving-problems-with-messaging-creating-a-new-user#comment20</link><guid>http://ayende.com/3889/solving-problems-with-messaging-creating-a-new-user#comment20</guid><pubDate>Fri, 27 Feb 2009 16:35:00 GMT</pubDate></item><item><title>Mr_Simple commented on Solving problems with messaging: Creating a new user</title><description>@Rafal
  
  
Yup that's the bucket of goo that I pulled out of the codebase to simplify things.
  
  
</description><link>http://ayende.com/3889/solving-problems-with-messaging-creating-a-new-user#comment19</link><guid>http://ayende.com/3889/solving-problems-with-messaging-creating-a-new-user#comment19</guid><pubDate>Tue, 24 Feb 2009 23:11:51 GMT</pubDate></item><item><title>Rafal commented on Solving problems with messaging: Creating a new user</title><description>Thanks Simple, if ya wanna help I'll remember to have a bucket of dung for you.
</description><link>http://ayende.com/3889/solving-problems-with-messaging-creating-a-new-user#comment18</link><guid>http://ayende.com/3889/solving-problems-with-messaging-creating-a-new-user#comment18</guid><pubDate>Tue, 24 Feb 2009 06:24:48 GMT</pubDate></item><item><title>Mr_Simple commented on Solving problems with messaging: Creating a new user</title><description>@Rafal
  
  
Umm just what I want to maintain, a homegrown workflow engine.
  
  
What was the name of the place you work?  Oh never mind, they'll be out of money before ya'll get the project finished.
</description><link>http://ayende.com/3889/solving-problems-with-messaging-creating-a-new-user#comment17</link><guid>http://ayende.com/3889/solving-problems-with-messaging-creating-a-new-user#comment17</guid><pubDate>Mon, 23 Feb 2009 21:43:54 GMT</pubDate></item><item><title>Rafal commented on Solving problems with messaging: Creating a new user</title><description>Gavin, you're right. For such case, using a workflow engine would be like using a cannot to shoot a sparrow (a polish proverb). But user registration is only the beginning, probably the system will grow to contain hundreds of functions, use cases, procedures, rules and exceptions to rules and such detailed approach quickly becomes unmanageable. Even in this simple example there are 3 sub-procedures - registration, confirmation and expiration. I know I'm biased because i'm working on a project with hundreds of 'business cases' and there's no single person that can understand it, further development is like building a hut from cow dung - you know, slap some here and some there until it sticks together. We had to resort to extreme programming in pairs - one developer holds the walls together while another one goes to get the pay from customer. To address such problems, I'm developing a workflow engine  and use Ayende's blog as an inspiration.
</description><link>http://ayende.com/3889/solving-problems-with-messaging-creating-a-new-user#comment16</link><guid>http://ayende.com/3889/solving-problems-with-messaging-creating-a-new-user#comment16</guid><pubDate>Mon, 23 Feb 2009 19:47:57 GMT</pubDate></item><item><title>Gavin commented on Solving problems with messaging: Creating a new user</title><description>@Rafal
  
  
I am still not sure, ..., state persistance is the same for most things no matter which way you look at it. The management thereof might be a different story.  I might be wrong but this article is about yielding the benefit of async design upfront and the interesting problems along the way that get solved.  You might just be using a hammer to crack a wall nut for the sake of this article :)
</description><link>http://ayende.com/3889/solving-problems-with-messaging-creating-a-new-user#comment15</link><guid>http://ayende.com/3889/solving-problems-with-messaging-creating-a-new-user#comment15</guid><pubDate>Mon, 23 Feb 2009 15:48:39 GMT</pubDate></item><item><title>Stephen commented on Solving problems with messaging: Creating a new user</title><description>Ayende I guess this is just differing opinions, the load times should be the same (if not faster with async ones) if you consider the load time to be the time from the user hitting submit and getting to a 'check your mail'.
  
  
I'd never use meta-refresh as it can freak people out and isn't very accessible nor friendly to browser history.
</description><link>http://ayende.com/3889/solving-problems-with-messaging-creating-a-new-user#comment14</link><guid>http://ayende.com/3889/solving-problems-with-messaging-creating-a-new-user#comment14</guid><pubDate>Mon, 23 Feb 2009 15:34:59 GMT</pubDate></item><item><title>Rafal commented on Solving problems with messaging: Creating a new user</title><description>Gavin, 'facetious' is certainly a new word in my dictionary, thanks. Persisting saga state and persisting workflow state is the same thing. I said 'workflow engine' but should have said 'orchestration engine' - service responsible for coordinating an interaction between several components. Something one level of abstraction higher than sagas with built in state management, messaging and reusable process building blocks. For me, these are very closely related concepts.
  
</description><link>http://ayende.com/3889/solving-problems-with-messaging-creating-a-new-user#comment13</link><guid>http://ayende.com/3889/solving-problems-with-messaging-creating-a-new-user#comment13</guid><pubDate>Mon, 23 Feb 2009 15:16:46 GMT</pubDate></item><item><title>Gavin commented on Solving problems with messaging: Creating a new user</title><description>@Rafal
  
  
I was not being facetious when I made the remark about use cases. Your comment lacked information. Isn't there a fundamental difference in how the state is managed with a workflow engine? The clue here is the word 'saga' which by definition is wrapping these functions up into a single context. I think workflow might be off the mark as the concept is very different to what is being stated in this article.
</description><link>http://ayende.com/3889/solving-problems-with-messaging-creating-a-new-user#comment12</link><guid>http://ayende.com/3889/solving-problems-with-messaging-creating-a-new-user#comment12</guid><pubDate>Mon, 23 Feb 2009 14:42:02 GMT</pubDate></item><item><title>Ayende Rahien commented on Solving problems with messaging: Creating a new user</title><description>Stephen,
  
async pages requires that the developer manage threading explicitly.
  
It also result in poorer UX in many cases, because page load times are significantly higher.
</description><link>http://ayende.com/3889/solving-problems-with-messaging-creating-a-new-user#comment11</link><guid>http://ayende.com/3889/solving-problems-with-messaging-creating-a-new-user#comment11</guid><pubDate>Mon, 23 Feb 2009 14:37:05 GMT</pubDate></item><item><title>Ayende Rahien commented on Solving problems with messaging: Creating a new user</title><description>Stephen,
  
meta refresh can do the work as well, and it is quite easy to set it up.
  
No need for user interaction at all.
</description><link>http://ayende.com/3889/solving-problems-with-messaging-creating-a-new-user#comment10</link><guid>http://ayende.com/3889/solving-problems-with-messaging-creating-a-new-user#comment10</guid><pubDate>Mon, 23 Feb 2009 14:36:12 GMT</pubDate></item><item><title>Ayende Rahien commented on Solving problems with messaging: Creating a new user</title><description>Rafal,
  
You can assume that business level scenarios are presented quite differently.
  
I usually talk about user &amp; system, without going into the details about the actual system.
</description><link>http://ayende.com/3889/solving-problems-with-messaging-creating-a-new-user#comment9</link><guid>http://ayende.com/3889/solving-problems-with-messaging-creating-a-new-user#comment9</guid><pubDate>Mon, 23 Feb 2009 14:35:29 GMT</pubDate></item><item><title>Stephen commented on Solving problems with messaging: Creating a new user</title><description>Ayende, what about async pages in asp.net 2:
  
  
[msdn.microsoft.com/en-us/magazine/cc163725.aspx](http://msdn.microsoft.com/en-us/magazine/cc163725.aspx)  
  
The threads are free'd back to the pool (to work) whilst they wait on an async event.
</description><link>http://ayende.com/3889/solving-problems-with-messaging-creating-a-new-user#comment8</link><guid>http://ayende.com/3889/solving-problems-with-messaging-creating-a-new-user#comment8</guid><pubDate>Mon, 23 Feb 2009 13:55:41 GMT</pubDate></item><item><title>Stephen commented on Solving problems with messaging: Creating a new user</title><description>Still can't get over the concept of using javascript to spin waiting for something to happen, I understand you want to free a servers request threads so they can forefil other requests, but when I have a system that uses javascript, I almost always have that to be a 'neat' version of a vanilla http process.. and I can only imagine the experience for vanilla http would be... weird.
  
  
Here's how it would go:
  
  
visit site, fill in registration form, hit submit, instantly get a response telling me to click a button to what? check how my registration is going? 
  
  
I couldn't do that, the javascript one is fine, once filling in the form I'd just run an ajax request to start the registration, and keep it 'pinging' for success while I spin with 'please wait'.
  
  
It seems like a 'hack' to a problem of locking request threads up, is it really needed? surely there must be a better way to handle waiting threads in IIS / ASP.NET.
</description><link>http://ayende.com/3889/solving-problems-with-messaging-creating-a-new-user#comment7</link><guid>http://ayende.com/3889/solving-problems-with-messaging-creating-a-new-user#comment7</guid><pubDate>Mon, 23 Feb 2009 13:50:56 GMT</pubDate></item><item><title>Rafal commented on Solving problems with messaging: Creating a new user</title><description>Ayende, you have written a very nice piece about system design and I agree with you that async communication mechanics are very difficult to understand and implement properly. Simple case of user registration results in a very complex interaction between several components and it's great you show how to approach it with sagas and messaging. But at the same time I wish we, application developers, knew the design principles, understood the architecture, and then used some higher-level tools so we don't get overwhelmed with the complexities. We need a kind of language that encapsulates async messaging, state persistence, sagas, correlations and component communication, so we can concentrate on user's interaction with the application. Hope you touch this subject in future.
</description><link>http://ayende.com/3889/solving-problems-with-messaging-creating-a-new-user#comment6</link><guid>http://ayende.com/3889/solving-problems-with-messaging-creating-a-new-user#comment6</guid><pubDate>Mon, 23 Feb 2009 13:31:31 GMT</pubDate></item><item><title>Ayende Rahien commented on Solving problems with messaging: Creating a new user</title><description>Rafal,
  
That is not a diagram that I intend to give to a customer or a user.
  
This is a developer diagram
</description><link>http://ayende.com/3889/solving-problems-with-messaging-creating-a-new-user#comment5</link><guid>http://ayende.com/3889/solving-problems-with-messaging-creating-a-new-user#comment5</guid><pubDate>Mon, 23 Feb 2009 12:46:54 GMT</pubDate></item><item><title>Rafal commented on Solving problems with messaging: Creating a new user</title><description>Gavin, Ayende has given enough information about business scenario, I don't need use cases to know what he's talking about. My point is that issues like this one can be easily addressed by a workflow engine. Workflow centralizes the logic, coordinates all the parties involved and takes care of timing and synchronization issues. Of course there is a very interesting subject of what happens underneath - what messages are sent, how these components interact and so on - but that's an implementation detail and not the logic our customers or users are talking about.
</description><link>http://ayende.com/3889/solving-problems-with-messaging-creating-a-new-user#comment4</link><guid>http://ayende.com/3889/solving-problems-with-messaging-creating-a-new-user#comment4</guid><pubDate>Mon, 23 Feb 2009 12:03:14 GMT</pubDate></item><item><title>Gavin commented on Solving problems with messaging: Creating a new user</title><description>Rafal, Isn't the goal of a sequence diagram to model the sequence interactions between types?  For logic you should have probably asked Ayende for use cases ... I still dont get the relevance of what your saying for this article.
</description><link>http://ayende.com/3889/solving-problems-with-messaging-creating-a-new-user#comment3</link><guid>http://ayende.com/3889/solving-problems-with-messaging-creating-a-new-user#comment3</guid><pubDate>Mon, 23 Feb 2009 11:44:53 GMT</pubDate></item><item><title>Rafal commented on Solving problems with messaging: Creating a new user</title><description>I think workflow  model is a better abstraction of such design problems. Interaction diagrams, as above, go too much into details and it's harder to see the 'logic' of this scenario.
</description><link>http://ayende.com/3889/solving-problems-with-messaging-creating-a-new-user#comment2</link><guid>http://ayende.com/3889/solving-problems-with-messaging-creating-a-new-user#comment2</guid><pubDate>Mon, 23 Feb 2009 09:26:16 GMT</pubDate></item><item><title>Victor Kornov commented on Solving problems with messaging: Creating a new user</title><description>Both "(click to enlarge)" links open the same small images. 
</description><link>http://ayende.com/3889/solving-problems-with-messaging-creating-a-new-user#comment1</link><guid>http://ayende.com/3889/solving-problems-with-messaging-creating-a-new-user#comment1</guid><pubDate>Sun, 22 Feb 2009 20:49:12 GMT</pubDate></item></channel></rss>