I have a need to access Dynamics CRM data in a custom app. Is common data service is the right approach to achieve this? There is a need to read & write data from CRM entities, is CDS support write operation on CRM entities through APIs? Any other alternative approaches which should be considered for scale and performance over CDS? Any pointers for initial setup of CDS against a particular CRM org will be very helpful.
All I see from your question is Building an app with Dynamics CRM as datasource. Based on the enterprise data flow size, transaction scaling, security entitlements & available resource skill set - you have to decide the technology and architecture.
PowerApps (Canvas app) is low-code responsive app designer with Dynamics connector for two way dataflow, whereas Model-driven PowerApp is also cross-platform, cross-browser, responsive native app with strong security model built on top of Dynamics CRM system. Both should be scalable.
You can build app using React, Angular, Bootstrap technologies along with Dynamics CRM RESTful web api for CRUD operations to CRM entities.
You need CDS when you have multiple Dynamics ERP products like CRM, Finance & Operations and need to maintain the integrity of data between the system entities.