I am trying to figure out how to architecture my application and I really need some tips. It basically is a dashboard that lets people get an overview of their WooCommerce data. People can connect with WooCommerce, we retrieve their products, customers and orders and we display them on different interfaces.
I made a lot of research and I found this great article wrote by Mixmax. It explains why they had to move the contacts off into their own database, completely cut off from Meteor. I may have the exact same issue with the data coming from WooCommerce so here is how I imagined the architecture.
The meteor application with Blaze and MongoDB.
Another application that synchronize with the WooCommerce API and save the results in a database.
I am not sure if it is the best way to do it. Here is the main questions I have:
Should I build the syncbox with Hapi or Express or is there a better way to do so with another Meteor app with Restivus for instance. I would rather avoid to introduce a new technology to the stack but it seems smarter to me to use Hapi or Express to manage this kind of things.
I have browsed the Apollo and GraphQL documentation. Should I use Apollo to connect with the Syncbox and its database instead of building a rest api to access the data with Blaze?
Looks like Apollo is more integrated with React so should I start to code my app with React instead of Blaze?
Also, my meteor accounts are saved on the main application. How can I make things secure when Blaze or Apollo will ask for the data in the syncbox?
Thanks a lot for taking the time to answer some of these questions.