Re: ACID & Business Rules in non Trivial Domain Models
rtavassoli <at> ymail.com <rtavassoli <at> gmail.com>
2009-03-01 12:44:36 GMT
Hi Nuno, Hi Dan,
I mentioned before that I think that AR is a desirable, but probably
hard to achieve pattern in complex systems. You guys argue this in
much greater detail, and I am glad to see that I am not the only one
having trouble accepting this - in my eyes - simplified view of
consistency boundaries.
I haven't made up my mind yet what to think of this, still hoping for
the "aha" effect.
enjoy,
ramin
--- In domaindrivendesign <at> yahoogroups.com, "Dan Haywood" <dan@...> wrote:
>
> >
> > I see that ARs are excellent for very high load demands and yet
> > extremely complex business constraints.
> > ...
> > For most other cases it is my impression that is a cannon to kill a
> > fly. Transaction facilities (ACID) become ubiquitous in the Enterprise
> > so use them, do not replace them. To have a Domain Object mapped to a
> > Table TCustomer, and Order mapped to a Table TORDER in the same
> > database model, same database instance, same application, both
> > potential ARs, IMHO it is even ridiculous to argue its usefulness from
> > any technical point of view.
>
> Hi Nuno,
> I've quoted what I think is the essence of your post above, and I
> agree with it. My (revised) 2c worth on this after reading a lot of
> posts on this is:
>
> 1. ARs are worthwhile for reducing domain complexity: fewer things to
> think about. So do use them for this purpose.
>
> 2. ARs as consistency boundaries do make sense if deploying to a
> grid-like architecture, but no sense if deploying to a traditional
> RDBMS architecture.
>
> The only question then is when would you need to move from RDBMS
> persistence to grid? Bearing in mind that an RDBMS is easy to
> recover, and provides DSS as well as OLTP services, I think you would
> have to have a very unusual app to want to move to grid for the
> foreseeable.
>
> It's possible you are an Amazon in which case you need massive OLTP
> performance. But RDBMS do scale an amazingly long way. This last
> week I was delivering a Sybase Performance course at a Telco software
> supplier. We got hold of some monitoring data from production. With
> a bank of 30 app servers (each with 10 CPUs) hitting a single Sybase
> instance with 32 CPUs, they were doing ~900 transactions per second.
> Which is pretty good going. And this was with Sybase running at about
> 1/3rd capacity.
>
> So... if you are looking to scale beyond ~3000 transactions per
> second, AND you can afford to build your own reporting infrastructure,
> AND your SLAs are not too onerous to recover the system if it breaks,
> then perhaps you should also be thinking of ARs as consistency
> boundaries so you can deploy them to a grid architecture.
>
------------------------------------