Ayende @ Rahien

My name is Oren Eini
Founder of Hibernating Rhinos LTD and RavenDB.
You can reach me by phone or email:


+972 52-548-6969

, @ Q c

Posts: 6,130 | Comments: 45,560

filter by tags archive

Ayende’s DDD Application: Macto

time to read 1 min | 142 words

A long while ago I planned on doing a series of webcasts, demonstrating how to build a real Enterprise System using my approach. I called it Macto, but I never got around to it.

The recent discussion around the Microsoft N Layer sample has caused me to rethink this decision. I think that it would be a good idea to do so. I don’t know if I’ll complete it, and I don’t know if I’ll do code, but I intend to lay out a full architectural approach. I already started writing the series of posts, and it should air out starting around the 18th of July.

Update: Okay, I moved some posts around, it is now starting next week, but there is a lot of additional content, so it is going to be posted over the next month or two.


David Fauber


"I don’t know if I’ll do code" I'd be interested in taking the architectural approach and coming up with a sample implementation, at least for a module.

Pablo Alarcón

"I don’t know if I’ll do code"

I too hope you do... both for learning from it and to understand your fierce critic to the NLayer "small sample application". I don't think skipping code would be consequent with your critics, as you said:

"That doesn't actually work, you can't demonstrate something that is only useful for complex applications in a trivial context. If you want a sample application for DDD, you have to make a scenario where using DDD would actually make sense."


"I already started writing the series of posts"

I think that you should follow your own criteria and show code not literature. The code should talk itself.

You said some post ago: "That doesn't actually work, you can't demonstrate something that is only useful for complex applications in a trivial context. If you want a sample application for DDD, you have to make a scenario where using DDD would actually make sense."

I expect a real complex application coming from your fingers, not a bunch of posts. Write real code, man, so the rest of the world can critice it like you do.


Ayende Rahien

Iker, For explaining stuff? Code isn't a great medium. Worse than that, people tend to get focused on just the code, but architecture is a whole lot more than that. Beside, I think that understanding the actual scenario and usage is far more important than any technical stuff that I would do if I was writing code.


Looking forward to this series of posts. No pressure, but I would be interested in both a discussion of an architectural approach as well as at least a few code samples that show real business scenarios, not just basic CRUD operations. You are right that architecture is more than code, but code can also bring a concept home in a way that no amount of exposition can. Either way, keep up the good work.


I am glad you did not forget about the project. Hopefully, it will not be a typical unrealistic sample that is all about CRUD.


As expected, the series of posts about Microsoft N Layer App Sample is pure FUD, for publicity and launch your own supernatural guidance. What I think is that you don't need it. You are enough famous to do that. You are missing the way.


@kash you're embarrassing yourself a little mate. I'd try and learn something over blasting industry standard best practices.

@ayende let me know if I can help out.



"you're embarrassing yourself a little mate"

Sure. If you say so...

"I'd try and learn something over blasting industry standard best practices"

The way is to show your work, not to discredit the work of others and then brandish yours as if it were a law. I think that Ayende is one of the bests developers in .Net, but I don't like the way that he use a lot of times


@kash I think ur picking your battles unwisely.


Ayende, you are really unfair and in this case you are not being honest.

When other people do a book explaining patterns and best practices for big architectures using DDD you say that the code should talk, that a good architecture do not need a book, etc... Now, I bunch of blog post coming from you will be the supreme-final-extra great- architecture guidance... Are you kidding us?

Good bye.

petar repac

Ayende, maybe Macto can be a community project under your suppervision. This way we can all help and learn in the process. Many of us have fight bad architectures and I personally am very interested in learn good designs.

A result could be a book in PDF and some code on codeplex or somewhere. A start should be a very well specified domain.

Ayende Rahien

Iker, Take a close look at what I actually said, compared to what you seem to think I said. When putting out code, the code should be able to stand on its own, it cannot be a shim for something else. In the current case, when talking about DDD, you can't just ignore the domain part and do silly technical stuff.

I have no problem with architecture that is architecture, for example, the DDD book is quite good, and there isn't really any code in there.

When you are putting out code, it has to be able to stand on its own

Ayende Rahien

Peter, I haven't thought about this, but this is likely to be a very good idea, I'll probably go ahead and do that, then



Interesting how you haven't show up at Rob Conrey's blog (another well respected .NET Developer who has challenged this project here http://wekeroad.com/post/7102729511/a-simple-example-thats-incredibly-complex), yet you seem obsessed with Ayende's review option.

You now are accusing him of giving it a bad review for selfish means to push his own agenda. That's a line you should be very weary about crossing. You are obviously hurt by his reviews, and that's fine, but please re-read what you type before hitting submit. The idea that he'd take the time to write 10 blog posts all in some Dr. Evil type master plan to resurrect an old project he had from the dead, one that he said doesn't even think he has time to complete, is laughable.

Dialogue is almost always good, but you're really starting to tread on some dangerous ground. The fact that the code is changing so much on a daily basis pretty much confirms that the code itself just wasn't (and probably still isn't) that good.



You win. I don't need to read what you've written. You think that I've crossed a line, your line. I think that the line was crossed some time ago, at the begining of the first post.

But it's the time to leave it here, because I don't like this. I believe in a comunity with people that helps each others, and this is not that I've read here.

I've attended several events of the people who work on this project and I found people who believe in their work. People who help others and do not deserve this.

I don't know if you understand me, because my english is not very good, all that I want to say is good luck to all in your lifes. Good bye.


Hey Kash, I'll miss you. You stood up to big bad Ayende so well.

Looking forward to the series Ayende. I'm also moving to London so will be getting front row seats next time you are in town.



I listened to you on the distributed podcast a while ago when you were talking about distrubted transactions/multiple databases etc using Raven Db. Will you be covering those aspects in the series, too?



Saying that he's intentionally sabotaging another project (again, one he didn't even know existed and they came to him and asked him to review) probably crosses most people's line. Could Ayende have been a tad nicer in his commentary? Sure, but that's not really his style which is something the person making the request knew. It also doesn't change the fact that there are many, many problems with this sample app.

Ayende Rahien

Nick, Those are technical aspects, that are distinct and orthogonal from the DDD aspects.



In the initial post, Ayende said: "I was forwarded this link, etc...". He didn't mentioned that the Microsoft team asked him to review it publicly when he said ‘I was forwarded this link..’.


Looking forward to these new series!

All thumbs up to Ayende!

Mark Lee

I missed the volunteer call on this, but I would absolutely love to work on it. So, if you find a need for another volunteer, I am there: https://github.com/markplee

Hendry Luk

Ayende, it's called simulation. Engineering students don't need an actual river to learn how to build a suspension bridge. Neither do they need to be building a 70-story skyscrapper to learn to use self-errecting tower-crane technique in building constructions. While it definitely makes for a better learning experience, the cost to simulate an accurate life-scale environment is prohitively expensive. The lesson is not there to tell you that you need a self-errecting tower crane and a complex engineering sophistication to build a garden shed. The lesson is there to teach you how to use those techniques when they do need them,.. and in the meantime, they just have to "imagine" that they do have a 70-story tower to build. It's called simulation

Ayende Rahien

Hendry, Except, the lesson here is that this self erecting tower crane has a sever lean, and would collapse the moment you would put any load on it.


Ayende, what do you intend to do next? You will have a spec, attempt to analyse and design the system base on this spec. Do you have any analyse and design in next post?

Comment preview

Comments have been closed on this topic.


  1. RavenDB Conference 2016–Slides - one day from now

There are posts all the way to Jun 01, 2016


  1. The design of RavenDB 4.0 (14):
    26 May 2016 - The client side
  2. RavenDB 3.5 whirl wind tour (14):
    25 May 2016 - Got anything to declare, ya smuggler?
  3. Tasks for the new comer (2):
    15 Apr 2016 - Quartz.NET with RavenDB
  4. Code through the looking glass (5):
    18 Mar 2016 - And a linear search to rule them
  5. Find the bug (8):
    29 Feb 2016 - When you can't rely on your own identity
View all series


Main feed Feed Stats
Comments feed   Comments Feed Stats