Skip to content

Draft: Refactor nucleus to remove hard dependencies on structs

Andre Sterba requested to merge gosdn-storage-cleanup into master


The idea is to add an aditional layer around the core models (like networkElement and others).

This will enable more flexibility in the nucleus package and remove problems with circular dependencies and the question where to place interfaces for our services, stores, ...?.

This should also remove the interfaces folder that is filled with interfaces and structs.

After this we can also think about moving movings like rbac and topology back in the nucleus instead of in own packages and shared functionalitiy (like stores and services).

This will roughly follow the ideas of ports&adapters, hexagonal architecture and/or onion architecture. (I like this article about it)

Related Issue

Motivation and Context

How Has This Been Tested?

Screenshots (if appropriate):

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)


  • My code follows the code style of this project.
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I have read the CONTRIBUTING document.
  • I have added tests to cover my changes.
  • All new and existing tests passed.
Edited by Andre Sterba

Merge request reports