I. 4 fundamental ideas that we need in order to design data-intensive applications. Reliable, scalable, maintainable applications. Reliability means continuing to work correctly, even when things go wrong. Common faults and preventions include: Hardware faults: hard disks crash, blackout, incorrect network configuration,… Add redundancy to individual hardware components to reduce the failure rate. As long as we can restore a backup onto a new machine quickly, the downtime is not fatal. Software faults: bug, out of shared resources, unresponsive service, cascading failure,… There’s no quick solution other than thorough testing, measuring, monitoring, analyzing. Human errors: design error, configuration error,… Enforce good design, good practice and training. Decouple the places where people make the most mistake. Automate testing: unit test, integration test, end-to-end test. Allow quick recovery rollback strategy. Set up detials monitoring Scalability describes a system’s ability to co
Me, Mine and Myself