What is Dependency Injection (DI)?

Updated Apr 28, 2026

Short answer

A technique in which an object receives other objects that it depends on, rather than creating them internally.

Deep explanation

Mid-level architecture focuses on system interactions and decoupling. Dependency Injection is a key tool here, allowing for easier testing and modularity. You also begin to encounter trade-offs in distributed systems, such as those described by the CAP theorem. The goal shifts from 'writing good code' to 'designing good components'.

Real-world example

Using a message broker like RabbitMQ to decouple a 'Payment' service from an 'Email Notification' service.

Common mistakes

  • Using CQRS for a simple CRUD application, leading to unnecessary complexity and data synchronization issues.

Follow-up questions

  • What is the 'Inversion of Control' container?

More Software Architecture interview questions

View all →