Which of the following best defines a microservice architecture?
1. An architecture commonly used in functional programming and object-oriented programming
2. A small program that usually represents discrete logic that executes within dedicated hardware or well-defined boundary
3. A code fragment that doesn't exceed 10 lines of code
4. An application designed for enterprise systems based on a loosely coupled component architecture