---
# System prepended metadata

title: Archtitektur

---

# Archtitektur

## Layers

| Id |     Name       |
|----|----------------|
| 1  |  Presentation  |
| 2  |  Application   |
| 3  |     Domain     |
| 4  | Infrastructure |

### 0. Core
- Logger
- DI-Setup
- Assets

### 1. Presentation

#### <PLATFORM>
    
- 0+ Pages
- 0+ Flows
    
### 2. Application

- 0+ Cubits
- 0+ Blocs

### 3. Domain
- 0+ Entities
- 0+ ValueObjects
- 0+ ServiceInterfaces

### 4. Infrastructure
- 0+ Dtos
- 0+ ServiceImplementations


## Components

| Id  | Name             | Layer          | Depending on        |
| --- | ---------------- | -------------- | ------------------- | 
| 1   | Page             | Presentation   | Domain, Application | 
| 2   | Flow             | Presentation   | Domain, Application |
| 3   | Bloc             | Application    | Domain              |
| 4   | Cubit            | Application    | Domain              | 
| 5   | ServiceInterface | Domain         | -                   | 
| 6   | Entity           | Domain         | -                   |
| 7   | ValueObject      | Domain         | -                   |
| 8   | ServiceImpl      | Infrastructure | Domain              |
| 9   | Dto              | Infrastructure | Domain              |

    
### 1. Page

Inject Bloc/Cubit into the widget tree
Use state from Bloc/Cubit to render UI

### 2. Flow
Inject Bloc/Cubit into the widget tree
Add new sub navigator/router into the widget tree
    
### 3. Bloc
Calc state from Services   
     
### 4. Cubit
Calc state from Services 
    
### 5. ServiceInterface
Define interfaces to get, aggregate, manipulate, delete Entities/ValueObjects
    
### 6. Entity
Hold immutable data
    
### 7. ValueObject
Validate primitives and Entities
    
### 8. ServiceImpl
Implement ServiceInterface depending on environment (fake, production, stage, ...)
    
### 9. Dto
Transfer raw data (e.g json, xml, ..) to Entity
    
