Dependency Inversion
Problem
Your business logic directly depends on:
SQL Server
Azure Service Bus
SendGrid
Changing infrastructure means changing business logic.
Solution — Dependency Inversion
Business logic depends on abstractions.
OrderService
↓
PaymentGateway
↑
Stripe implementation
Infrastructure implements those abstractions.
Core idea: important logic should depend on contracts rather than concrete infrastructure details.