I'm going to start developing an application in near future. This application consists of :
Back-end system. This system provides API to be used by client. This system connects to data store and 3rd party API.
Data Store : Can be relational or nosql data store.
Client : Client will be a website and mobile applications.
My reasons are below :
I want to prevent duplicated SQL query and 3rd party API call in website application side. The application and website will be developed by different developers. Only back end system developers that can make query or call 3rd party API. All website developers should only use API provided by back-end system
In my opinion, the website is also a client just like the mobile application. If the mobile apps get their data from back-end system API, why the website shouldn't be the same.
I heard twitter is using similar idea (I can be wrong though). Its website is using twitter API just like their mobile application.
My primary concern to this architecture is that the website performance will be lower compared than If the website can make query or 3rd party API call directly.
Is there any other pros and cons that I should think about ?