Hi Rickard,

My thoughts between the lines...

Quoting Rickard Öberg <[email protected]>:
> First off, some things I want to backport from Streamflow into Qi4j:
> * FileConfigurationService - service that determines where to put files
> in a filesystem, based on platform defaults. With this service it
> becomes much easier to know where application data, configuration and
> logs should be placed

I'll be interested by this one.


> * JMX services - extract the current JMX helpers from the REST extension
> into their own library. From Streamflow we also have a service that
> exports configurable services into JMX so they can be easily edited
> there (VERY useful!!!), and a JMX remote connector

Would be awesome !


> * DataSources - service for instantiating and configuring DataSources

We already have something for using DataSource in qi4j-lib-sql, maybe should
we compare the two and merge to get the best of them.


> * LiquiBase - wrapper service for LiquiBase, to do RDBMS refactorings

As soon as this is done we'll use it in entitystore-sql and indexing-sql.


> * Eventstore - API and backend for storing events for EventSourcing.
> Currently based on JDBM, which works, but is not optimal perhaps

Do you mean it's not an EntityStore ? Could there be a SPI to implement several 
backends ?


> * Solr query/indexing - Solr implementation of Query/Index SPI. This
> gives you free-text searching in your domain model.

I'm curious about this one.


> * REST/CQRS API - Based on Restlet, this makes it easy to construct full
> REST API's (with HATEOAS) and also enables DCI as the application layer
> in an app. Comes with client as well.

I'm very interested by this one :)


> * Console - BeanShell console that can be exposed through Restlet. Handy
> for debugging the domain model and administrative commands

Neat!


> All in all, a nice set of features that would be useful in any real-life
> project.
> 
> Then there are some things that we need but have not yet started:
> * Circuit breaker library - for every external services (email,
> database, LDAP, webservice) we want to use the circuit breaker pattern
> (look it up). We need a simple library that can do this, and expose it
> in JMX for management tools to monitor/configure/reset. This is crucial
> to handle production issues, and track the health of an application.
> * Active -> Available - currently it is possible to check if a service
> in Qi4j is "active". In practice I've found that it's not really all
> that useful, and what is instead needed is to check whether it is
> "available", meaning, if I call it, will it respond? This goes hand in
> hand with the circuit breaker library for external services, but for
> internal services it is also useful since many of my services have an
> "enabled" configuration property, which when false should be able to
> tell service users that the service is unavailable at the moment.
> 
> Apart from the above, there's a couple of NOSQL datastores that we could
> easily add support for (it seems). I looked at CouchDB the other day,
> and it's datamodel seems like a perfect fit for us, so.. why not?
> 
> This is a start for what we could do. Much of it is already done in
> Streamflow, so it's mainly a matter of porting it. It may need touching
> up as we move it, so it is more standalone, but that should not be too
> difficult. The goal with 1.3 would be to have more production features,
> and also allow easy implementation of REST/CQRS/EventSourcing, which are
> hot topics these days, and for good reasons.
> 
> WDYT?

All work that could make qi4j apps more production/exploitation friendly would 
be welcome and a real plus when pleading in favor of qi4j adoption @ work.


Paul










_______________________________________________
qi4j-dev mailing list
[email protected]
http://lists.ops4j.org/mailman/listinfo/qi4j-dev

Reply via email to