As a Developer I want a framework agnostic mechanism to communicate apps

Priority

Components

Affects versions

None

Fix versions

None

Description

As a platform, DXP supports a wide range of frontend frameworks and approaches. Different organizations have different needs and present unique challenges.

The goal of this epic is to provide building blocks to improve widget state synchronization and simplify client state management across different applications and frameworks such as React, Angular and Vue.js

Some ideas we've explored so far include:

  • Support to store state locally in localStorage

  • Globally available Store API with:

    • Normalized payload

    • Subscription mechanism

  • Support to store state on the server (session) 

  • Per-route state control and storage

  • Globally available Reducer API

Acceptance Criteria

  • A new mechanism that allows to agnostically connect applications regardless of the framework of choice

  • Upgrade paths for existing patterns within DXP codebase are documented and applied

  • Documentation provided on how to use it using the main industry frameworks

Test Information section

Test Scenarios:

Requirement

Test Case

Covered by frontend/backend unit test? (Yes/No)

Test Priority (business impact)

Chrome
Pass/Fail

Firefox
Pass/Fail

A new mechanism that allows to agnostically connect applications regardless of the framework of choice

Given app built from React
And Given synced with app built from vanilla JSP
When input provided in react app
Then that data can be instantly retrieved and displayed in JSP app

no

5-critical

 

 

 A new mechanism that allows to agnostically connect applications regardless of the framework of choice

Given app built from React
And Given synced with app built from vanilla JSP
When input provided in JSP app
Then that data can be instantly retrieved and displayed in react app

no

5-critical

 

 

Exploratory Scenarios:

Requirement

Test Case

Test Priority (business impact)

 

Exploratory API testing

3-medium

 

Exploratory API testing, to see if API messages provide useful errors

3-medium

 

Exploratory test if can easily send/receive heavy state objects with new API.

3-medium

100% Done
Loading...

Activity

Show:

John Co May 11, 2021 at 5:12 PM

Manual Testing Round 1 Results

PASSED Manual Testing following the steps in the description.

Verified on:
Environment: Linux Mint Cinnamon
Github: https://github.com/liferay/liferay-portal.git
Branch: master
Database: MySQL 5.7
Browser: Chrome 89, FF 86
Last Commit: 9e3b0decdc840f40069c5e1a0d13e210f17b0c28

Test Scenarios:

Requirement

Test Case

Covered by frontend/backend unit test? (Yes/No)

Test Priority (business impact)

Chrome
Pass/Fail

Firefox
Pass/Fail

A new mechanism that allows to agnostically connect applications regardless of the framework of choice

Given app built from React
And Given synced with app built from vanilla JSP
When input provided in react app
Then that data can be instantly retrieved and displayed in JSP app

no

5-critical

 PASS

 PASS

 A new mechanism that allows to agnostically connect applications regardless of the framework of choice

Given app built from React
And Given synced with app built from vanilla JSP
When input provided in JSP app
Then that data can be instantly retrieved and displayed in react app

no

5-critical

PASS 

PASS 

Exploratory Scenarios:

Requirement

Test Case

Test Priority (business impact)

PASS/FAIL

Comments

 

Exploratory API testing

3-medium

PASS

no issues found
 

 

Exploratory API testing, to see if API messages provide useful errors

3-medium

PASS 

Needed guidance on understanding some of the usages testing on local browser vs usage in source code. But the usage of the API can be addressed when/if decide other developers will adopt the usage.

 

Exploratory test if can easily send/receive heavy state objects with new API.

3-medium

 PASS

basic objects were able to work. QA did not performance test heavier states.

Completed
Pinned fields
Click on the next to a field label to start pinning.

Details

Assignee

Reporter

Zendesk Support

Created October 12, 2020 at 7:42 AM
Updated November 28, 2022 at 9:17 AM
Resolved April 23, 2021 at 3:55 AM