Let's get on track for this topic again as it's rather important.
I am still not with your opinion for the following reasons (I'll try to make it short and precise):
I am still not with your opinion for the following reasons (I'll try to make it short and precise):
- I don't agree that just because one part of an application (contribution process) is not so frequently/massively used as another part (read/display game data) it should be built as a seperate application. And as I said before, in my opinion it cannot be a criterion that one part of the application should get more stable by seperating other parts of the application from it.
- The history of a game data set is in my opinion directly coupled with the user(s) who edited this data set. You propose that we document the metadata of data changes with a text field - no way! It must be possible to view a detailed list of "who edited what game data when" and display this data directly together with the game data. This information should in my opinion also be retrievable from the application via REST calls. Just like (nearly) every data from our application. We must be able to answer a request like "list the games that user X contributed to in the last year".
- During the contribution process users will enter game data. This game data needs to be saved temporarily in my opinion before the contribution is finally "submitted". Just like a shopping basket in an online shop. We will offer quite complex HTML forms (game data, source infos, upload files), so the user must be able to save the game data from the current contribution. Therefore we need an implemented game data model - and not a second one, but the only one. A "moderator" has to take a look at the contribution data bevore he can approve it. Or only some parts of it. For all these things I want to build just one integrated data model - not two seperated.
- For maintenance purposes we may always use HTTP techniques - just add a new server instance and then turn of the old one - like a load balancing server. One may divide an application into two applications for that - if there were no other reasons for not doing this. But I think there are reasons why we should not make two applications.