Skip to content

Commit

Permalink
persistency: Draft Feature request for KVS
Browse files Browse the repository at this point in the history
Initial draft
  • Loading branch information
LittleHuba committed Jan 24, 2025
1 parent eae387b commit 27f70a2
Showing 1 changed file with 117 additions and 0 deletions.
117 changes: 117 additions & 0 deletions docs/features/persistency/key-value-storage/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,120 @@
Key-value Storage
#################

- Key-Value Storage is needed because there are (legacy) applications which require a KVS
- There are multiple Key-Value Storages allowed per application
- There must be an update mechanism from different versions of a KVS to another version
- When are modifications persisted? Configurable?
- The same KVS should be read/writeable from C++ & Rust.
- Supported Datatypes: Primitive Datatypes & Non-Primitive Datatypes; To be coordinated with IPC/Communication CTF, to use the same datatypes
- Tooling to modify/access content of KVS "from the outside"
- KVS should store default values
- Integrity of the KVS should be checked

.. document:: [Your Feature Name]
:id: DOC__Your_Feature_Name
:status: draft
:safety: ASIL_D
:tags: contribution_request, feature_request

.. attention::
The above directive must be updated according to your Feature.

- Modify ``name`` to be your Feature Name
- Modify ``id`` to be your Feature Name in upper snake case preceded by ``DOC_``
- Adjust ``status`` to be ``valid``
- Adjust ``asil`` according to your needs
- Extend ``tags`` according to your needs, but please keep two default tags there


Feature flag
============

To activate this feature, use the following feature flag:

``experimental_[your_feature_name]``

.. note::
The feature flag must reflect the feature name in snake_case. Further, it is prepended with ``experimental_``, as
long as the feature is not yet stable.


Abstract
========

[A short (~200 word) description of the contribution being addressed.]


Motivation
==========

[Clearly explain why the existing platform/project solution is inadequate to address the topic that the Feature Request solves.]

.. note::
The motivation is critical for Feature Requests that want to change the existing features or infrastructure.
It should clearly explain why the existing solution is inadequate to address the topic that the Feature Request solves.
Feature Request submissions without sufficient motivation may be rejected.


Rationale
=========

[Describe why particular design decisions were made.]


.. note::
The rationale should provide evidence of consensus within the community and discuss important objections or concerns raised during discussion.


Specification
=============

[Describe the requirements, architecture of any new feature.] or
[Describe the change to requirements, architecture, implementation, process, documentation, infrastructure of any change request.]

.. note::
A Feature Request shall specify the stakeholder requirements as part of our platform/project.
Thereby the :need:`RL_technical_lead` will approve these requirements as part of accepting the Feature Request (e.g. merging the PR with the Feature Request).


Backwards Compatibility
=======================

[Describe potential impact (especially including safety and security impacts) and severity on pre-existing platform/project elements.]


Security Impact
===============

[How could a malicious user take advantage of this new feature?]

.. note::
If there are security concerns in relation to the Feature Request, those concerns should be explicitly written out to make sure reviewers of the Feature Request are aware of them.



Safety Impact
=============

[How could the safety be impacted by the new feature?]

.. note::
If there are safety concerns in relation to the Feature Request, those concerns should be explicitly written out to make sure reviewers of the Feature Request are aware of them.
ToDo - Link to the Safety Impact Method

[What is the expected ASIL level?]
[What is the expected classification of the contribution?]

.. note::
Use the component classification method here to classfiy your component, if it shall to be used in a safety context: (TODO: add link to component classification).


License Impact
==============

[How could the copyright impacted by the license of the new contribution?]


How to Teach This
=================

0 comments on commit 27f70a2

Please sign in to comment.