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

