I'd like to see a lightweight generic technology-agnostic API that gave
access to the functionality of domain-driven applications.

Generic, because it would provide generic abstractions for doing CRUD and
invoking actions and queries, based on sufficient schema metadata.

Technology-agnostic because it would be purely specification, the actual
behavior would need to be provided by supporting implementations (Isis,
OpenXava, Grails etc). Also, being easy to translate to other languages
would be a primary design goal.

Think Restful Objects but without hitting the network.

Think Isis without the runtime support and user's domain-specific Java
classes.

I have seen the isis-metamodel-core component, but it seems much
richer/more complex than necessary. Exposing similar functionality as RO
would require a much simpler spec I believe. Agreed?

Then, if instead of Isis-specific viewers we had viewers built on this API,
we could run them against a much wider range of stacks that Isis will ever
provide. Since they would be used in many different contexts, it would be
easier to get more people on-board to develop them (not only those
interested in Isis, or Grails etc).

Disclaimer: I develop a service that while not Isis or RO-based, is also
domain-driven. I developed a couple of "viewers" (Qooxdoo UI and a REST
API), and am considering an Android one, and I wish I didn't have to, or at
least that they were reusable in other contexts.

I published a similar API that I built for using in Cloudfier here:

http://bitbucket.org/abstratt/kirra-api/

See how small it is. Yet it allows me to build generic clients that don't
know what kind of runtime the accessed functionality is running on. Please
don't get hung up on details - I'd be happy to drop it in favor of
something new (built collaboratively with folks from Isis, OpenXava, Naked
Objects etc). I decided to publish it as open-source just to get the
conversation started.

So, pipe dream, or a doable endeavor?

Cheers,

Rafael

Reply via email to