Uploaded image for project: 'Hybrid Cloud Console'
  1. Hybrid Cloud Console
  2. RHCLOUD-44951

Kessel | Layered architecture for Inventory

XMLWordPrintable

    • Kessel | Layered architecture for Inventory
    • Quality / Stability / Reliability
    • False
    • Hide

      None

      Show
      None
    • False
    • Unset
    • In Progress
    • 67% To Do, 11% In Progress, 22% Done

      Review the CRCPLAN parent feature for additional context, including the feature overview, goals, user stories and use cases, acceptance criteria, designs, dependencies, risks, assumptions, pending questions and documentation callouts.

      Summary and goal

      Organize Inventory into a clearly layered architecture, using packages to model the 5 layers described in Inventory Application Architecture.

      Acceptance Criteria 

      1. Inventory codebase package structure clearly reflects the 5 layers
        1. Each layer's responsibility and dependency rules are documented
        2. The layers follow the rules and dependency structure
      2. Developers can understand the architecture, and implement new features following its rules and guidance
      3. Linters automatically enforce simple mechanical rules where appropriate (e.g. import ruels)
      4. LLMs can "understand" the architecture, and automatically implement new features or abstractions following its rules and guidance

      Order

      These refactorings have all been prototyped and designed to be implemented in a specific order to minimize disruption and churn between changes:

      1. Separate presentation from application
      2. Move types that should be into the model, to the model
      3. Add/move logic that should be in the model, to the model (potentially with new value types)
      4. Validate resource schema with the application service, not middleware
      5. Move tuple calculation to Schema (it is coupled to schema)
      6. Remove gorm from Repository interface(s)
      7. Move repository implementations to infrastructure
      8. Move Authorizer interface to consolidated model and implementation to infrastructure
      9. Integrate the Consumer into the model
      10. Integrate the ListenManager into the application layer
      11. Refactor observability code into observers & probes (domain oriented observability pattern)
      12. [Stretch] Reorganize config deserialization

      Checklist

      Checklist Item Required Notes or Comments
      Workstream or external team dependencies? N  
      ADR Required? 
      • Long-form (approval)
      • Short-form (informational)
      N  
      Testing plans
      • New automation or update existing?
      N Architecture includes testing accommodations
      Known dependencies? 
      • Link to the dependent Jiras
      • Add details
      N  

      Open Questions

      Capture any open questions and resolutions related to the epic goal or acceptance criteria. Add any additional details, questions or decisions that need to be made or addressed. 

              rhit-ahenning Alec Henninger
              rhit-ahenning Alec Henninger
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated: