I am planning a new project and am interested in your opinion:
It is a big archive database with CRUD forms of 300k+ records, some of them are structured in a tree and some additional features like a good search for example.
Current plan is to use Flow as backend service and a vue.js application based on vuetify as frontend.
Today i set up a prototype consisting of a plain Flow installation (without Neos) with the Neos.ContentRepository and Wwwision.GraphQL a slightly modified (removed the requirements to neos/neos) Wwwision.Neos.GraphQL and Flowpack.Elasticsearch.ContentRepositoryAdaptor. This gives me a working graphQL endpoint for the Neos.ContentRepository with elasticsearch index.
I am now thinking about what would be best:
- Use this setup (maybe in the future replace the CR with the eventsourced one)
- Con: not sure how the CR handles 300k + nodes
- Con: relations are not as “clean” as doctrine models, elasticsearch is a must to get relations on the reverse side, not sure how long it takes to rebuild an index og 300k nodes
- Pro: get history, undo and stuff easily integrated when switching to the eventsourced CR in the future
- Pro: tree structure out of the box
- Use plain doctrine models instead of the CR
- Pro: Clean classic DB structure
- Pro: No big unknowns
- Pro: Also Elasticsearch integration available
- Con: Boring (as in not as exciting as the other options)
- Con: Tree-Structure, History and other stuff needs to be build from scratch
- Use the eventsourcing package
- Con: No elasticsearch integration out of the box
- Con: Not sure about the “stability” and performance with 300k records
- Pro: Big potential (good base for history, undo and that kind of stuff)