# HEXAGONAL ARCH BREAKDOWN STEP 1. Define ***core attribute*** in ```core/{core_name}```. 2. Define ***repository contract (interface)*** for your core in ```bussiness/{core_name}/repository.go```. 3. Define ***service contract*** and ***service contract implementation*** in ```bussiness/{core_name}/service.go```. 4. Write down your ***repository contract implementation*** and ***factory*** for core repository in ```modules/repository/{core_name}```. 5. Incase of creating RESTAPI 1. Define core ***controller***, ***request & response function*** in ```modules/api/V1/{core_name}```. On this example is managing version within a folder ```V1```. 2. Register core controller in ```app/server/main.go```. 3. Define ***common & repeatable function or model (struc)*** related with controller in ```api/common```