Instruction: Discuss the implementation of Redux for state management in React applications, including its core principles.
Context: This question tests the candidate's experience with Redux in React projects, focusing on the setup, middleware, and best practices for scalable state management.