Hi Christian,
I went through your wiki article. Thanks for the clear write-up, this surely helps the discussion!
My remarks:
* I like the fact that there is denormalization for faster queries.
* I don't see the need for a reportService. As I see it, people will use a report technology (eg BIRT or Jasper) and go straight to the DB
* What's the use case for storing the activityInstanceId (not the id of the activityId) ? I don't see the need for it in reporting.
* Idea (not a remark): what about extending the Query API with methods such as .averageDuration() or stddevDuration() ? But i must say, thay besides it being "cool", I dont have a real use case for it next to demo purposes …
* Both tables store a processDefinitionId. But what happens when the process definition is removed ? Do we need to think about storing deployment history ?