When architecting a serverless application to perform enhanced data manipulation tasks, which method would be most suitable for managing predictable performance demands and cost-efficiency in read/write operations?
Triggering a function to execute each time data changes occur within the database
Provisioning a NoSQL database with customizable levels of read/write capacity
Expanding the allocated memory of the database instances to improve caching mechanisms
Deploying additional read replicas for the database to enhance data retrieval efficiency