Modular application system decomposed into separate micro frontends to support personalized application flows
In some implementations, a system may host an application that includes a host container and multiple micro frontend (MFE) components that each include an interface associated with the application. The system may receive, at the host container and from a client device, a request to initiate the application. The system may identify a set of attributes associated with a user that provided the request to initiate the application. The system may determine a flow associated with the application based on the set of attributes associated with a user that provided the request to initiate the application, wherein the flow associated with the application includes a sequence in which a subset of the multiple MFE components is presented to the user. The system may present, to the client device, the subset of the multiple MFE components in accordance with the flow based on the set of attributes associated with the user.
1 . A system for personalizing an application flow, the system comprising:
one or more memories; and
one or more processors, communicatively coupled to the one or more memories, the one or more processors configured to cause the system to:
host an application that includes a host container and a plurality of micro frontend (MFE) components that each include an interface associated with the application,
wherein the host container provides an entry point to the application, and
wherein each interface included in a respective MFE component of the plurality of MFE components includes one or more interactive elements;
receive, from a client device, a request to initiate the application,
wherein the request is received at the host container that provides the entry point to the application;
determine a flow associated with the application based on a set of attributes associated with a user that provided the request to initiate the application,
wherein the set of attributes includes a category associated with the user, and
wherein the flow associated with the application includes a sequence in which a subset of the plurality of MFE components is presented to the user;
monitor one or more user interactions with the subset of the plurality of MFE components,
wherein the set of attributes includes the one or more user interactions with the subset of the plurality of MFE components, and
wherein the flow is updated based on the one or more user interactions with the subset of the plurality of MFE components and based on the category associated with the user; and
present, to the client device, the subset of the plurality of MFE components in accordance with the updated flow.
2 . The system of claim 1 , wherein the host container and the plurality of MFE components are each associated with a respective backend for frontend (BFF) to enable communication with one or more backend microservices.
3 . The system of claim 1 , wherein the set of attributes includes a channel through which the user provided the request to initiate the application and the category associated with the user.
4 . The system of claim 1 , wherein the one or more processors, to determine the flow associated with the application, are configured to cause the system to:
select, from the plurality of MFE components associated with the application, the subset of the plurality of MFE components to present to the user based on the set of attributes.
5 . The system of claim 1 , wherein the one or more processors are further configured to cause the system to:
define multiple paths associated with the application,
wherein the multiple paths each correspond to the subset of the plurality of MFE components and a sequence in which to present the subset of the plurality of MFE components for a combination of user attributes.
6 . The system of claim 5 , wherein the one or more processors, to determine the flow associated with the application, are configured to cause the system to:
map the set of attributes to a path of the multiple paths associated with the application.
7 . The system of claim 6 , wherein the one or more processors, to determine the flow associated with the application, are further configured to cause the system to:
map the set of attributes to a sub-path associated with the path mapped to the set of attributes,
wherein the sub-path defines the subset of the plurality of MFE components to present to the user and the sequence in which to present the subset of the plurality of MFE components to the user.
8 . A method for personalizing an application flow, comprising:
hosting, by a system, an application that includes a host container and a plurality of micro frontend (MFE) components that each include an interface associated with the application,
receiving, by the system and from a client device, a request to initiate the application,
wherein the request is received at the host container;
identifying, by the system, a set of attributes associated with a user that provided the request to initiate the application,
determining, by the system, a flow associated with the application based on the set of attributes,
wherein the set of attributes includes a category associated with the user, and
wherein the flow associated with the application includes a sequence in which a subset of the plurality of MFE components is presented to the user;
monitoring one or more user interactions with the subset of the plurality of MFE components,
wherein the set of attributes includes the one or more user interactions with the subset of the plurality of MFE components, and
wherein the flow is updated based on the one or more user interactions with the subset of the plurality of MFE components and based on the category associated with the user; and
presenting, by the system and to the client device, the subset of the plurality of MFE components in accordance with the updated flow.
9 . The method of claim 8 , wherein:
the host container provides an entry point to the application, and
each interface included in a respective MFE component of the plurality of MFE components includes one or more interactive elements.
10 . The method of claim 8 , wherein the host container and the plurality of MFE components are each associated with a respective backend for frontend (BFF) to enable communication with one or more backend microservices.
11 . The method of claim 8 , wherein the set of attributes includes a channel through which the user provided the request to initiate the application and the category associated with the user.
12 . The method of claim 8 , wherein determining the flow associated with the application comprises:
selecting, from the plurality of MFE components associated with the application, the subset of the plurality of MFE components to present to the user based on the set of attributes.
13 . The method of claim 8 , further comprising:
defining multiple paths associated with the application,
wherein the multiple paths each correspond to the subset of the plurality of MFE components and a sequence in which to present the subset of the plurality of MFE components for a combination of user attributes.
14 . The method of claim 13 , wherein determining the flow associated with the application comprises:
mapping the set of attributes to a path of the multiple paths associated with the application.
15 . The method of claim 14 , wherein determining the flow associated with the application comprises:
mapping the set of attributes to a sub-path associated with the path mapped to the set of attributes,
wherein the sub-path defines the subset of the plurality of MFE components to present to the user and the sequence in which to present the subset of the plurality of MFE components to the user.
16 . A non-transitory computer-readable medium storing a set of instructions, the set of instructions comprising:
one or more instructions that, when executed by one or more processors of a system, cause the system to:
host an application that includes a host container and a plurality of micro frontend (MFE) components that each include an interface associated with the application;
receive, from a client device, a request to initiate the application,
wherein the request is received at the host container;
determine a flow associated with the application based on a set of attributes associated with a user that provided the request to initiate the application,
wherein the set of attributes includes a category associated with the user, and
wherein the flow associated with the application includes a sequence in which a subset of the plurality of MFE components is presented to the user;
monitor one or more user interactions with the subset of the plurality of MFE components,
wherein the set of attributes includes the one or more user interactions with the subset of the plurality of MFE components, and
wherein the flow is updated based on the one or more user interactions with the subset of the plurality of MFE components and based on the category associated with the user; and
present, to the client device, the subset of the plurality of MFE components in accordance with the updated flow.
17 . The non-transitory computer-readable medium of claim 16 , wherein the host container and the plurality of MFE components are each associated with a respective backend for frontend (BFF) to enable communication with one or more backend microservices.
18 . The non-transitory computer-readable medium of claim 16 , wherein the set of attributes includes a channel through which the user provided the request to initiate the application and the category associated with the user.
19 . The non-transitory computer-readable medium of claim 16 , wherein the one or more instructions, that cause the system to determine the flow associated with the application, cause the system to:
select, from the plurality of MFE components associated with the application, the subset of the plurality of MFE components to present to the user based on the set of attributes.
20 . The non-transitory computer-readable medium of claim 16 , wherein the one or more instructions further cause the system to:
define multiple paths associated with the application,
wherein the multiple paths each correspond to the subset of the plurality of MFE components and a sequence in which to present the subset of the plurality of MFE components for a combination of user attributes.