{"id":290,"date":"2004-02-23T19:35:00","date_gmt":"2004-02-23T23:35:00","guid":{"rendered":"http:\/\/www.markbaker.ca\/wp\/?p=266"},"modified":"2004-02-23T19:35:00","modified_gmt":"2004-02-23T23:35:00","slug":"messaging-alternatives","status":"publish","type":"post","link":"http:\/\/www.markbaker.ca\/blog\/2004\/02\/messaging-alternatives\/","title":{"rendered":"Messaging alternatives?"},"content":{"rendered":"<p><a href=\"http:\/\/www.looselycoupled.com\/blog\/lc00aa00017.html\">Phil Wainewright writes;<\/a><\/p>\n\n<blockquote>\nThere is no alternative to messaging. Your only choice is good messaging or bad messaging.\n<\/blockquote>\n\n<p>Mostly, sure.  But sometimes, when you&#8217;ve got <em>very<\/em> good messaging\nbeneath, it becomes possible to see new patterns of communication in the\naggregate.  Shared memory, for example.<\/p>\n\n<p>As I was just writing to someone in private email, if you do REST properly,\nyou end up with a system which exhibits the properties of both messaging and\nshared memory styles, depending upon the configuration of the architecture you&#8217;re\nexamining (obviously), but also depending upon how you look at it; sometimes\nI see distributed objects with a uniform interface (the messaging view), and\nsometimes I see interconnected pools of data (the shared memory view), and both\nare perfectly valid and complementary ways of looking at a single configuration.\nSome have referred to this duopoly as\n<a href=\"http:\/\/esw.w3.org\/topic\/BeesAndAnts\">&#8220;Bees and Ants&#8221;<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"Phil Wainewright writes; There is no alternative to messaging. Your only choice is good messaging or bad messaging. Mostly, sure. But sometimes, when you&#8217;ve got very good messaging beneath, it becomes possible to see new patterns of communication in the aggregate. Shared memory, for example. As I was just writing to someone in private email, [&hellip;]","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-290","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/posts\/290","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/comments?post=290"}],"version-history":[{"count":0,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/posts\/290\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/media?parent=290"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/categories?post=290"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/tags?post=290"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}