# Symfony Architecture (Symfony) > Hexagonal architecture, DDD, CQRS, repositories, DTOs, value objects, bounded contexts - 24 interview questions - Senior - [Interview Questions: Symfony](https://sharpskill.dev/en/technologies/symfony/interview-questions.md) ## 1. In hexagonal architecture, what is the main role of ports? **Answer** Ports are interfaces that define contracts between the business domain and the outside world. Primary ports (or driving ports) allow external actors to trigger actions in the domain, while secondary ports (or driven ports) allow the domain to interact with external infrastructure like databases or third-party services. This abstraction allows changing implementation without affecting the business domain. ## 2. What is an adapter in Symfony hexagonal architecture? **Answer** An adapter is a concrete implementation of a port that bridges the outside world and the domain. For example, a DoctrineUserRepository is an adapter implementing the UserRepositoryInterface port. On the primary side, a Symfony controller is an adapter that adapts HTTP requests to domain use cases. This separation allows testing the domain independently from infrastructure. ## 3. In Domain-Driven Design, what is the main characteristic of a Value Object? **Answer** A Value Object is defined by its attributes, not by an identity. Two Value Objects with the same values are considered equal. They are immutable: any modification creates a new instance. For example, an Email or Money object are typical Value Objects. This immutability ensures data consistency and makes reasoning about code easier in complex systems. ## 21 more questions available - What is the role of an Aggregate Root in DDD? - What is a DTO (Data Transfer Object) and when to use it in Symfony? Sign up for free: https://sharpskill.dev/en/login ## Other Symfony interview topics - [Modern PHP (8.1+)](https://sharpskill.dev/en/technologies/symfony/interview-questions/php-modern-features.md): 20 questions, Junior - [Symfony Basics](https://sharpskill.dev/en/technologies/symfony/interview-questions/symfony-basics.md): 25 questions, Junior - [Routing & Controllers](https://sharpskill.dev/en/technologies/symfony/interview-questions/routing-controllers.md): 20 questions, Junior - [Twig & Templates](https://sharpskill.dev/en/technologies/symfony/interview-questions/twig-templates.md): 20 questions, Junior - [Doctrine ORM Basics](https://sharpskill.dev/en/technologies/symfony/interview-questions/doctrine-orm-basics.md): 25 questions, Junior - [Symfony Forms](https://sharpskill.dev/en/technologies/symfony/interview-questions/forms.md): 22 questions, Junior - [Data Validation](https://sharpskill.dev/en/technologies/symfony/interview-questions/validation.md): 18 questions, Junior - [Dependency Injection & Services](https://sharpskill.dev/en/technologies/symfony/interview-questions/dependency-injection.md): 24 questions, Mid-Level - [Security & Authentication](https://sharpskill.dev/en/technologies/symfony/interview-questions/security-authentication.md): 26 questions, Mid-Level - [Doctrine Advanced](https://sharpskill.dev/en/technologies/symfony/interview-questions/doctrine-advanced.md): 24 questions, Mid-Level - [API Platform](https://sharpskill.dev/en/technologies/symfony/interview-questions/api-platform.md): 22 questions, Mid-Level - [Serializer Component](https://sharpskill.dev/en/technologies/symfony/interview-questions/serializer.md): 20 questions, Mid-Level - [Events & Event Subscribers](https://sharpskill.dev/en/technologies/symfony/interview-questions/events-subscribers.md): 20 questions, Mid-Level - [Console & Commands](https://sharpskill.dev/en/technologies/symfony/interview-questions/console-commands.md): 18 questions, Mid-Level - [Messenger Component](https://sharpskill.dev/en/technologies/symfony/interview-questions/messenger.md): 22 questions, Mid-Level - [HTTP Client](https://sharpskill.dev/en/technologies/symfony/interview-questions/http-client.md): 18 questions, Mid-Level - [Cache & Performance](https://sharpskill.dev/en/technologies/symfony/interview-questions/cache.md): 20 questions, Mid-Level - [Workflow Component](https://sharpskill.dev/en/technologies/symfony/interview-questions/workflow.md): 18 questions, Mid-Level - [Testing Symfony](https://sharpskill.dev/en/technologies/symfony/interview-questions/testing.md): 22 questions, Mid-Level - [Mailer Component](https://sharpskill.dev/en/technologies/symfony/interview-questions/mailer.md): 16 questions, Mid-Level - [Translations & i18n](https://sharpskill.dev/en/technologies/symfony/interview-questions/translations.md): 16 questions, Mid-Level - [EasyAdmin Bundle](https://sharpskill.dev/en/technologies/symfony/interview-questions/easyadmin.md): 18 questions, Mid-Level - [Performance & Optimization](https://sharpskill.dev/en/technologies/symfony/interview-questions/performance-optimization.md): 22 questions, Senior - [Security Advanced](https://sharpskill.dev/en/technologies/symfony/interview-questions/security-advanced.md): 22 questions, Senior - [Custom Bundles](https://sharpskill.dev/en/technologies/symfony/interview-questions/custom-bundles.md): 20 questions, Senior - [Microservices with Symfony](https://sharpskill.dev/en/technologies/symfony/interview-questions/microservices.md): 22 questions, Senior - [Real-time & WebSockets](https://sharpskill.dev/en/technologies/symfony/interview-questions/real-time.md): 18 questions, Senior - [Deployment & DevOps](https://sharpskill.dev/en/technologies/symfony/interview-questions/deployment-devops.md): 20 questions, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/en/technologies/symfony/interview-questions/architecture-patterns