<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: Event Driven Architecture: Publishing Events using an IOC container</title>
	<atom:link href="http://elegantcode.com/2010/01/06/event-driven-architecture-publishing-events-using-an-ioc-container/feed/" rel="self" type="application/rss+xml" />
	<link>http://elegantcode.com/2010/01/06/event-driven-architecture-publishing-events-using-an-ioc-container/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=event-driven-architecture-publishing-events-using-an-ioc-container</link>
	<description></description>
	<lastBuildDate>Sun, 12 Feb 2012 18:54:00 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.5</generator>
	<item>
		<title>By: office cleaning birmingham</title>
		<link>http://elegantcode.com/2010/01/06/event-driven-architecture-publishing-events-using-an-ioc-container/comment-page-4/#comment-64472</link>
		<dc:creator>office cleaning birmingham</dc:creator>
		<pubDate>Fri, 09 Dec 2011 09:57:00 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2010/01/06/event-driven-architecture-publishing-events-using-an-ioc-container/#comment-64472</guid>
		<description>


Office cleaners can provide quality
service and perform a variety of duties. It does not matter how big or small
your office or working environment is. A little office cleaning can make an
excellent impression on clients and employees.



</description>
		<content:encoded><![CDATA[<p>Office cleaners can provide quality<br />
service and perform a variety of duties. It does not matter how big or small<br />
your office or working environment is. A little office cleaning can make an<br />
excellent impression on clients and employees.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jarod Ferguson</title>
		<link>http://elegantcode.com/2010/01/06/event-driven-architecture-publishing-events-using-an-ioc-container/comment-page-4/#comment-64393</link>
		<dc:creator>Jarod Ferguson</dc:creator>
		<pubDate>Thu, 03 Nov 2011 23:11:00 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2010/01/06/event-driven-architecture-publishing-events-using-an-ioc-container/#comment-64393</guid>
		<description>agree with you Robert that the logic in the controller could/should be pushed into the domain. I wrote this a few years ago- I think I was referring to this as &#039;Marks post&#039; : http://elegantcode.com/2009/11/11/cqrs-la-greg-young/</description>
		<content:encoded><![CDATA[<p>agree with you Robert that the logic in the controller could/should be pushed into the domain. I wrote this a few years ago- I think I was referring to this as &#8216;Marks post&#8217; : http://elegantcode.com/2009/11/11/cqrs-la-greg-young/</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Robert Stackhouse</title>
		<link>http://elegantcode.com/2010/01/06/event-driven-architecture-publishing-events-using-an-ioc-container/comment-page-4/#comment-64385</link>
		<dc:creator>Robert Stackhouse</dc:creator>
		<pubDate>Mon, 31 Oct 2011 15:45:00 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2010/01/06/event-driven-architecture-publishing-events-using-an-ioc-container/#comment-64385</guid>
		<description>The SubmitOrder action above feels like it is violating SRP by inheriting the responsibility of publishing domain events.

I suppose from a certain point of view the task of submitting an order could consist of creating the order as well as notifying any listeners that the order was created.

Your approach also puts the onus on the developer to remember to raise an event anytime that an action performed against the domain is executed that should logically result in the creation of an event. I have a personal aversion to multi-step processes. I guess it feels like the event being raised should be encapsulated with the method invocation related to it.

Thoughts?

p.s. Do you have a link to &quot;Mark&quot;&#039;s CQRS post? I don&#039;t know which Mark you are speaking of.</description>
		<content:encoded><![CDATA[<p>The SubmitOrder action above feels like it is violating SRP by inheriting the responsibility of publishing domain events.</p>
<p>I suppose from a certain point of view the task of submitting an order could consist of creating the order as well as notifying any listeners that the order was created.</p>
<p>Your approach also puts the onus on the developer to remember to raise an event anytime that an action performed against the domain is executed that should logically result in the creation of an event. I have a personal aversion to multi-step processes. I guess it feels like the event being raised should be encapsulated with the method invocation related to it.</p>
<p>Thoughts?</p>
<p>p.s. Do you have a link to &#8220;Mark&#8221;&#8216;s CQRS post? I don&#8217;t know which Mark you are speaking of.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Robert Stackhouse</title>
		<link>http://elegantcode.com/2010/01/06/event-driven-architecture-publishing-events-using-an-ioc-container/comment-page-4/#comment-64386</link>
		<dc:creator>Robert Stackhouse</dc:creator>
		<pubDate>Mon, 31 Oct 2011 15:45:00 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2010/01/06/event-driven-architecture-publishing-events-using-an-ioc-container/#comment-64386</guid>
		<description>The SubmitOrder action above feels like it is violating SRP by inheriting the responsibility of publishing domain events.

I suppose from a certain point of view the task of submitting an order could consist of creating the order as well as notifying any listeners that the order was created.

Your approach also puts the onus on the developer to remember to raise an event anytime that an action performed against the domain is executed that should logically result in the creation of an event. I have a personal aversion to multi-step processes. I guess it feels like the event being raised should be encapsulated with the method invocation related to it.

Thoughts?

p.s. Do you have a link to &quot;Mark&quot;&#039;s CQRS post? I don&#039;t know which Mark you are speaking of.</description>
		<content:encoded><![CDATA[<p>The SubmitOrder action above feels like it is violating SRP by inheriting the responsibility of publishing domain events.</p>
<p>I suppose from a certain point of view the task of submitting an order could consist of creating the order as well as notifying any listeners that the order was created.</p>
<p>Your approach also puts the onus on the developer to remember to raise an event anytime that an action performed against the domain is executed that should logically result in the creation of an event. I have a personal aversion to multi-step processes. I guess it feels like the event being raised should be encapsulated with the method invocation related to it.</p>
<p>Thoughts?</p>
<p>p.s. Do you have a link to &#8220;Mark&#8221;&#8216;s CQRS post? I don&#8217;t know which Mark you are speaking of.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chris Smith</title>
		<link>http://elegantcode.com/2010/01/06/event-driven-architecture-publishing-events-using-an-ioc-container/comment-page-4/#comment-55570</link>
		<dc:creator>Chris Smith</dc:creator>
		<pubDate>Fri, 02 Apr 2010 21:20:20 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2010/01/06/event-driven-architecture-publishing-events-using-an-ioc-container/#comment-55570</guid>
		<description>Excellent article - thanks for posting this!</description>
		<content:encoded><![CDATA[<p>Excellent article &#8211; thanks for posting this!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jason</title>
		<link>http://elegantcode.com/2010/01/06/event-driven-architecture-publishing-events-using-an-ioc-container/comment-page-4/#comment-54102</link>
		<dc:creator>Jason</dc:creator>
		<pubDate>Sat, 27 Feb 2010 20:25:03 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2010/01/06/event-driven-architecture-publishing-events-using-an-ioc-container/#comment-54102</guid>
		<description>&lt;a href=&quot;#comment-54098&quot; rel=&quot;nofollow&quot;&gt;@Jarod Ferguson&lt;/a&gt; 
Sure thing... I look forward to it.</description>
		<content:encoded><![CDATA[<p><a href="#comment-54098" rel="nofollow">@Jarod Ferguson</a><br />
Sure thing&#8230; I look forward to it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jarod Ferguson</title>
		<link>http://elegantcode.com/2010/01/06/event-driven-architecture-publishing-events-using-an-ioc-container/comment-page-4/#comment-54098</link>
		<dc:creator>Jarod Ferguson</dc:creator>
		<pubDate>Sat, 27 Feb 2010 19:50:30 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2010/01/06/event-driven-architecture-publishing-events-using-an-ioc-container/#comment-54098</guid>
		<description>&lt;a href=&quot;#comment-54095&quot; rel=&quot;nofollow&quot;&gt;@Jason&lt;/a&gt; 
Thank you for the positive feedback, I am very glad that you find my posts helpful. I do have plans for additional posts that build on the EDA posts and also EF POCO. I will put some CQRS posts on the radar and well see what comes out. I have a lot on my plate at the moment, so my blog has been on the back-burner.</description>
		<content:encoded><![CDATA[<p><a href="#comment-54095" rel="nofollow">@Jason</a><br />
Thank you for the positive feedback, I am very glad that you find my posts helpful. I do have plans for additional posts that build on the EDA posts and also EF POCO. I will put some CQRS posts on the radar and well see what comes out. I have a lot on my plate at the moment, so my blog has been on the back-burner.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jarod Ferguson</title>
		<link>http://elegantcode.com/2010/01/06/event-driven-architecture-publishing-events-using-an-ioc-container/comment-page-4/#comment-54097</link>
		<dc:creator>Jarod Ferguson</dc:creator>
		<pubDate>Sat, 27 Feb 2010 19:47:29 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2010/01/06/event-driven-architecture-publishing-events-using-an-ioc-container/#comment-54097</guid>
		<description>&lt;a href=&quot;#comment-53682&quot; rel=&quot;nofollow&quot;&gt;@mahmud khaled&lt;/a&gt; 
I might use AOP for cross-cutting concerns like logging, binding etc, but cant say I would use it for domain events. I want these events very visible, and IMO AOP decreases testability.

&lt;a href=&quot;#comment-53714&quot; rel=&quot;nofollow&quot;&gt;@Jarrod&lt;/a&gt; 
I would handle multi-tenant or session based rules outside of the event publisher in the example. That said, I think you could come up with a dynamic subscription mechanism that could read a &#039;ClientSubscriptions Map&#039; from a data store on session start. Then when EventPublisher.Publish is called, you could have it check the ClientSubscriptions, if the event subscription is present then publish the event. I would just make sure to keep a clear distinction between a system event and a client/customer event.</description>
		<content:encoded><![CDATA[<p><a href="#comment-53682" rel="nofollow">@mahmud khaled</a><br />
I might use AOP for cross-cutting concerns like logging, binding etc, but cant say I would use it for domain events. I want these events very visible, and IMO AOP decreases testability.</p>
<p><a href="#comment-53714" rel="nofollow">@Jarrod</a><br />
I would handle multi-tenant or session based rules outside of the event publisher in the example. That said, I think you could come up with a dynamic subscription mechanism that could read a &#8216;ClientSubscriptions Map&#8217; from a data store on session start. Then when EventPublisher.Publish is called, you could have it check the ClientSubscriptions, if the event subscription is present then publish the event. I would just make sure to keep a clear distinction between a system event and a client/customer event.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jason</title>
		<link>http://elegantcode.com/2010/01/06/event-driven-architecture-publishing-events-using-an-ioc-container/comment-page-4/#comment-54095</link>
		<dc:creator>Jason</dc:creator>
		<pubDate>Sat, 27 Feb 2010 18:05:58 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2010/01/06/event-driven-architecture-publishing-events-using-an-ioc-container/#comment-54095</guid>
		<description>Hi Jarrod,

Thanks for this article and this example. I appreciate how clearly your examples demonstrate a very bare bones, clean, implementation of architectural strategies. It helps that I also use EF POCO, and reviewing yours and Szymon&#039;s code has convinced me to shift to using Unity. 

In any case, I wonder if you could do the same for a CQRS architecture in which the client makes no use of the actual domain objects and read/write responsibilities are fully segregated. I find your style of example code to be very easy to follow which makes it much easier to see all of the very smart design decisions being made. Sometimes it&#039;s helpful to see a fully functional application like the one Mark offers in his excellent CQRS post, but I find that when I&#039;m studying an  architectural implementation, it&#039;s most helpful for the Domain to be as simple as possible (at least in the initial exploration). I appreciate for instance, that your Order object in this example consists of only an ID and that submitting an Order simply logs the action to a fake logger. :-) 

When I first read the comments for this post, I thought some of the responses were a little over the top in their praise. But having spent some time exploring the code, I get it. Thanks for putting this stuff out there. The contributions to the community from the Elegant Code bloggers are much appreciated.

Jason</description>
		<content:encoded><![CDATA[<p>Hi Jarrod,</p>
<p>Thanks for this article and this example. I appreciate how clearly your examples demonstrate a very bare bones, clean, implementation of architectural strategies. It helps that I also use EF POCO, and reviewing yours and Szymon&#8217;s code has convinced me to shift to using Unity. </p>
<p>In any case, I wonder if you could do the same for a CQRS architecture in which the client makes no use of the actual domain objects and read/write responsibilities are fully segregated. I find your style of example code to be very easy to follow which makes it much easier to see all of the very smart design decisions being made. Sometimes it&#8217;s helpful to see a fully functional application like the one Mark offers in his excellent CQRS post, but I find that when I&#8217;m studying an  architectural implementation, it&#8217;s most helpful for the Domain to be as simple as possible (at least in the initial exploration). I appreciate for instance, that your Order object in this example consists of only an ID and that submitting an Order simply logs the action to a fake logger. <img src='http://elegantcode.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  </p>
<p>When I first read the comments for this post, I thought some of the responses were a little over the top in their praise. But having spent some time exploring the code, I get it. Thanks for putting this stuff out there. The contributions to the community from the Elegant Code bloggers are much appreciated.</p>
<p>Jason</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jarrod</title>
		<link>http://elegantcode.com/2010/01/06/event-driven-architecture-publishing-events-using-an-ioc-container/comment-page-4/#comment-53714</link>
		<dc:creator>Jarrod</dc:creator>
		<pubDate>Wed, 17 Feb 2010 18:43:10 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2010/01/06/event-driven-architecture-publishing-events-using-an-ioc-container/#comment-53714</guid>
		<description>Great article.  I am going to have to try this out, but I have a question.  How would you handle a multi-tenant environment where maybe some clients want the email, but others do not and instead want to be notified with SMS?</description>
		<content:encoded><![CDATA[<p>Great article.  I am going to have to try this out, but I have a question.  How would you handle a multi-tenant environment where maybe some clients want the email, but others do not and instead want to be notified with SMS?</p>
]]></content:encoded>
	</item>
</channel>
</rss>

