Traditionally, applications evolved as monolithic units, where every feature and component resided within a single, large codebase. While this approach offered initial simplicity, it presented challenges as the application expanded in size and complexity. As demands for greater performance, flexibility, and resilience climbed, organizations began