Skip to content
This repository was archived by the owner on Dec 19, 2019. It is now read-only.
This repository was archived by the owner on Dec 19, 2019. It is now read-only.

Persistence Layer #68

@misha-kotov

Description

@misha-kotov

As a Magento Developer, I need a GraphQL persistence layer that provides flexible and performant data retrieval so that my web application is fast and leads to increased conversions.

A persistence layer would also provide a persistence-agnostic way to declare, store, and extend entities.

An entity is a set of associated fields that are used for the purpose of data changes and data retrieval. Each entity introduced by Module should be declared in entities.xml file. In each specific business case entity is represented as a unit of fields (DTO), aka subset of fields listed in the entity declaration. Each field describes type, format and validation rules which should be applied. Also, entity's declaration represents relationship between entities (aka Aggregate Root)

Service Responsibility is to convert DTO interface passed as input data which represents specific Command (action being processed over the entity by this service, i.e. CreateProductDTO, ChangeProductPriceDTO etc.) to the fieldset format, which would be processed and persisted by EntityManager (aka fieldsetManager). As a field set may contain different sets of fields dependent on use-case. EntityManager should link these fields with Entity Identity to make a persistence.

Metadata

Metadata

Assignees

No one assigned

    Labels

    epicfor-groomingThis issue needs to be discussed before it can be worked onperformance

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions