Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The Persistence Plugin Architecture is intended to address decoupling persistence implementations from the Core Data code base. Today (Delhi release), persistence implementations are part of the EdgeX Golang Services repo. As a result, adding new persistence implementation or updating an existing implementation requires a full test of the platform. For a future (Edinburgh) release, the goal is to move persistence implementations into their own repos so they can be maintained independently of the EdgeX code base. 

The architecture depends on Go Plugins

Requirements

...

User Stories

  1. As a persistence implementation provider (a provider), I want a mechanism so that I can add a new persistence implementation to the EdgeX platform.
  2. As a provider, I want a mechanism for sustaining a persistence implementation so that I do not rely on EdgeX platform releases.
  3. As a provider, I want a mechanism for configuring my implementation without knowing the rest of the EdgeX platform configuration.
  4. As a provider, I want the EdgeX platform build scripts to consolidate my build-time and run-time requirements so that I can maintain my implementation independently of the EdgeX platform.
  5. As a provider, I want an API contact so that I know what to implement.
  6. As a provider, I want an API contract so that I can unit test.
  7. As a provider, I want EdgeX platform testing to be able to certify implementation so that EdgeX platform users will the confidence to use my implementation.
  8. As an EdgeX platform maintainer (a maintainer), I want a default persistence implementation so that I can maintain CI/CT.
  9. As a maintainer, I want providers to create reasonable defaults so that I can add them into CI/CT.
  10. As an EdgeX platform user (a user), I want to select one or more persistence implementations for use by the various Core Data services.

Acceptance Criteria

MVP

v.Next

  • Provider certification
  • Provider included in platform CI/CT

Other Considerations

  • Could we us Go Modules?

Reference Patterns

The basis of the requirements came out of looking at how others have solved this challenge. 

...