Many of us have been on a project where everything starts out great and the client remains happy for a few months until suddenly they change their mind and are no longer happy. This project was certainly the case. However, there was quite a bit that we did right on the project. The code was clean and well architected. We used a transformation layer in the code to allow the API payloads to be detached from the database.