The more I read about Axum and hack the first lines of code, the more I feel there will be something that could make my life easier.
In the past years I tried to advocate the idea of service-orientation (and no: I am *not* talking about SOA - if you ever attended a session of mine you know that I am more than explicit about this point).
I like the idea of explicit boundaries, description via interfaces and contracts and definition of policies for runtime information. It goes that far that I try to follow the service-orientation principles wherever it makes sense (usually being a bit weak on the policies side).
Please note that I am not talking about WCF, I am talking about service-orientation. Yes, WCF is quite a nice framework (read: tool) to realize service-oriented systems. But then it is also a communication foundation which means it can be used to accomplish a lot more than the prototypical thinking around service-orientation.
Service-orientation is an attitude.
Now with Axum I can smell service-orientation in my language.
In service orientation there are services. In service orientation data is exchanged via channels and messages. In service orientation there are message handlers. In service orientation there are interfaces and contracts to describe the boundary.
In Axum there are domains for isolation. In Axum information is passed via channels and messages. In Axum there are agents for handling communication (either in a domain or between domains). In Axum there is schema to describe the exchanged information.
Pure joy (there seem to be more equivalent ideas, but this is good enough for starters).
We will see how this all turns out. On one hand, I am still starting to understand Axum. On the other hand, Axum is currently an incubation project, nothing more.
P.S.: the last Microsoft incubation project I was working on/with was code-named "Biztalk Services". This is now known as .NET Services as part of the Azure Services Platform...
BTW: I am *not* advocating that every class should be a service (at least there is no concept of a class in Axum ;)).
Comments