Accelerate Literature Icon
Want to do a literature review? Try our new Literature Review workflow

Characteristics and comparison of global state management tools in react applications

  • Abstract
  • Literature Map
  • Similar Papers
Abstract
Translate article icon Translate Article Star icon

This paper analyses and compares four tools for global state management in React applications, namely Context API, Zustand, Redux and MobX. The aim of the comparison was to define the advantages and limitations of each tool in different application scenarios. The Context API is a built-in tool for managing global application state that solves the problem of passing props through components – prop drilling. Other analysed tools need to be added separately to the project, and they were created as a solution to the limitations of the Context API. The results showed that Context API is best suited for smaller and medium-complex projects, Zustand is optimized for all project sizes, while Redux and MobX are more applicable for large and complex applications with complex global state. The Context API can become limiting in complex applications due to performance issues, context losses, or the lack of a solution to directly prevent the Zombie Child problem. Other tested tools have built-in solutions to the mentioned problems. Zustand has proven to be a comprehensive solution with its simple code base applicable to different sizes of applications. The advantage of Redux is its Flux architecture, which increases the boilerplate code, but also makes application development suitable for large teams and projects with high demands for predictability and strictly defined state management. MobX offers a flexible and reactive approach, which simplifies working with complex states, but in certain cases it can be less predictable compared to Redux. In conclusion, this paper contributes to the understanding of the key features of state management tools and offers guidelines for their selection, enabling developers and development teams to make informed decisions about tool selection based on technical and project requirements.

Similar Papers
  • Conference Article
  • 10.1109/parelec.2011.38
Distributed Program Control Flow and Behaviour Governed by Global States Monitoring
  • Apr 1, 2011
  • Marek Tudruj + 5 more

A new framework for designing evolved program execution control in distributed programs is discussed in the paper. The framework provides an infrastructure for designing distributed program control based on monitoring of global application states. Global control constructs are proposed which logically bind distributed program modules and define the flow of control dependent on the monitoring of global application states. Such control can be organized in programs at the process and thread levels. Special processes and threads called synchronizers collect state information from application modules, construct strongly consistent global states and evaluate control predicates on global states. Based on this evaluation control signals are sent to processes and threads to define inter module flow of control and to influence the internal module behavior. The proposed constructs are incorporated into the framework as a graphical API which is compiled into C/C++ programs with the MPI2, pthreads and Open Mp libraries for communication.

  • Research Article
  • Cite Count Icon 7
  • 10.1002/cpe.3431
PEGASUS DA framework for distributed program execution control based on application global states monitoring
  • Jan 22, 2015
  • Concurrency and Computation: Practice and Experience
  • Marek Tudruj + 5 more

SummaryThe paper presents basic design decisions taken in the implementation of a novel distributed program design framework Program Execution Governed by Asynchronous SUpervision of States in Distributed Applications (PEGASUS DA). This framework supports application program execution control design based on evolved automated program global states monitoring. The framework provides to a programmer a ready‐to‐use infrastructure for defining and handling local and global application states to be used as the basis for program execution control decisions. The paper presents how the provided infrastructure can be used for automated construction of strongly consistent application global states. Also, the use of global states for graphically supported specification of distributed program execution control is covered for clusters of multicore processors based on multithreading and message passing. Both architecture and implementation solutions applied for PEGASUS DA are discussed. Especially, multivariant algorithms for construction of program strongly consistent global states and methods for their use in the design of distributed program global execution control are shown. The use of PEGASUS DA is illustrated with an example of a traveling salesman problem solved by the branch and bound method. Copyright © 2015 John Wiley & Sons, Ltd.

  • Book Chapter
  • Cite Count Icon 2
  • 10.1007/978-3-030-43229-4_24
Parallel Graph Partitioning Optimization Under PEGASUS DA Application Global State Monitoring
  • Jan 1, 2020
  • Adam Smyk + 2 more

The paper concerns the use of global application states monitoring in distributed programs for advanced graph partitioning optimization. Two strategies for the control design of advanced parallel/distributed graph partitioning algorithms are presented and discussed. In the first one, the parallel algorithm control runs on top of the ready to use basic graph partitioning functions available inside an existing graph partitioning METIS tool. The second control strategy is based on a genetic programing algorithm in which the applied basic graph partitioning primitives and the overall algorithmic parallel/distributed control can be freely designed by the user. In these strategies, the graph partitioning control is executed by processes/threads supervised by the application global states monitoring facilities provided inside a novel distributed program design framework PEGASUS DA. This framework provides system support to construct user-defined strongly consistent global application states and an API to define corresponding execution control. In particular, it concerns computing global control predicates on the constructed global states, the predicates evaluation and asynchronous execution control handling to obtain application global state-driven reactions. Based on such implementation, different features of the graph partitioning optimization strategies have been designed and tested. The experimental results have shown benefits of the new graph partitioning control methods designed with the use of the application global states monitoring.

  • Conference Article
  • 10.1109/ispdc.2008.20
Global States Monitoring in Execution Control of Parallel Programs
  • Jan 1, 2008
  • Janusz Borkowski + 1 more

The paper concerns methodology of organizing execution control in parallel and distributed programs based on special control infrastructure provided in the system, which monitors application global states. In such infrastructure, automatic collecting information from parallel processes about their local states and construction global application states can be done on-line without tedious intervention of a programmer. Global predicates can be next evaluated to examine the obtained global states and control decisions on program behaviour can be taken. Application processes can use the information about global predicate fulfillment to control their execution in a way, which is desired from a global point of view. There are many possible ways a process can access the information about the global predicate fulfillment. We discuss them in detail, dividing the described variants into two main groups: synchronous and asynchronous. We present an implementation of an asynchronous variant. Implementation of other variants, which present very interesting perspectives is also discussed.

  • Conference Article
  • Cite Count Icon 13
  • 10.1109/ispdc.2011.24
Program Design Environment for Multicore Processor Systems with Program Execution Controlled by Global States Monitoring
  • Jul 1, 2011
  • Marek Tudruj + 5 more

A new distributed program graphical design environment is described in the paper. It is oriented towards designing program execution control based on a built-in system infrastructure which enables easy global application states monitoring in systems based on multicore processors. Two aspects of global application control design are covered. First is the global control flow in programs at the level of processes and threads. The second is the asynchronous control of internal process and thread behavior. The proposed control infrastructure is based on structural program elements called synchronizers organized at the process and thread levels to collect state information, evaluate control predicates on global states and send signals to application program threads and processes to stimulate global control actions. The paper presents principles of the application program graphical design and programming methods to implement global control at the level of threads.

  • Conference Article
  • Cite Count Icon 4
  • 10.1109/aspdac.2012.6165024
Formal methods for coverage analysis of architectural power states in power-managed designs
  • Jan 1, 2012
  • Aritra Hazra + 3 more

The architectural power intent of a design defines the intended global power states of a power-managed integrated circuit. Verification of the implementation of power management logic involves the task of checking whether only the intended power states are reached. Typically, the number of global power states reachable by the global power management strategy is significantly lesser than the possible number of global power states. In this paper, we present a formal method for determining the set of reachable global power states in a power-managed design. Our approach demonstrates how this task can be further constrained as required by the verification engineer. We highlight the efficacy of the proposed methods over several test-cases.

  • Research Article
  • Cite Count Icon 1
  • 10.12694/scpe.v13i2.778
Dynamic Distributed Programs Control Based on Global Program States Monitoring
  • Jul 20, 2012
  • Scalable Computing Practice and Experience
  • Janusz Borkowski + 1 more

The paper concerns designing distributed program execution control based on global application states monitoring in the presence of a dynamic number of processes and threads. Global program execution control is based on application states monitoring at the level of processes/threads in clusters of multi--core processors. A special control infrastructure is proposed based on synchronizers, which collect state information from processes and threads, detect strongly consistent application global states, evaluate control predicates and send respective control signals. An algorithm for detection of strongly consistent global states for a variable number of processes/threads is presented.

  • Book Chapter
  • Cite Count Icon 2
  • 10.1007/978-3-642-14403-5_25
Designing Execution Control in Programs with Global Application States Monitoring
  • Jan 1, 2010
  • Janusz Borkowski + 1 more

The paper is concerned with methodology for designing ececution control based on application global states monitoring in parallel and distributed programs. The principles of global state monitoring i parallel programs are recalled. Then new control statement semantics related with the global states monitoring are proposed, including synchronous and asynchronous approach to the maintenance of information used for the global states-control in programs. Proposals of syntactical solutions for designing a control language which accounts for program global states in execution control in parallel/distributed programs are presented.KeywordsGlobal StateParallel ProgramGlobal ControlControl LanguageGlobal ApplicationThese keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

  • Conference Article
  • 10.1109/pdp.2013.13
Genetic Algorithms Hierarchical Execution Control under a Global Application State Monitoring Infrastructure
  • Feb 1, 2013
  • A Smyk + 1 more

We present a new approach to the design of parallel genetic algorithms executed in multicore processor systems. To design the algorithms, a programming environment is used with parallel program global control flow functions and asynchronous process/thread internal behaviour control. Global application states monitoring is provided by generalized synchronization processes called synchronizers which collect local states of program elements, construct consistent global states and send control signals to program components based on predicates computed on global states. Such control/synchronization mechanisms are provided as a ready to use program infrastructure which is structurally decoupled from computational code for threads, processes and groups of threads/processes. A parallel genetic algorithm design based on such global control infrastructure is discussed. The algorithm has been used for optimal partitioning of parallel mesh computations represented as a data flow graph for solving a FDTD numerical problem.

  • Book Chapter
  • Cite Count Icon 10
  • 10.1007/978-3-642-55224-3_29
Distributed Program Execution Control Based on Application Global States Monitoring in PEGASUS DA Framework
  • Jan 1, 2014
  • Damian Kopański + 5 more

This paper presents control implementation methods for an original distributed program design framework PEGASUS DA (Program Execution Governed by Asynchronous SUpervision of States in Distributed Applications) which provides automated design of distributed program execution control based on program global states monitoring. The framework includes a built in support for handling local and global application states as well as automatic construction and use of strongly consistent application global states for program execution control. In particular, the paper presents methods used to implement distributed program control inside the PEGASUS DA framework run on clusters of contemporary multicore processors based on multithreading. The program design method is illustrated on a distributed multithreaded application executed with load balancing in a multicore system.KeywordsDistributed program execution controlDistributed program designGlobal application statesStrongly consistent global statesProgram design tools

  • Conference Article
  • Cite Count Icon 7
  • 10.1109/ispdc.2007.17
Dual Communication Network in Program Control Based on Global Application State Monitoring
  • Jul 1, 2007
  • Janusz Borkowski + 1 more

We discuss the efficiency of a novel parallel/distributed application control method, based on global state monitoring. Processes report their local states to monitors. The monitors construct global states, analyze them and send control signals to processes when necessary. The addition of a special fast control network, responsible for transferring control information, is proposed in this paper. The efficiency is tested in simulation of sample branch and bound parallel computations. We show, that multicast capability of a network plays an important role in the resulting system efficiency. Other network parameters, such as latency or bandwidth, are significant only under proper conditions. We identify these conditions, demonstrating that 5-9 times speedup can be obtained by addition of a fast control network.

  • Single Report
  • 10.55271/rp0002
Symposium Report—The Future Course of Populism in the Post-Pandemic Era: The State of Globalization, Multilateral Governance, and Democracy
  • Apr 2, 2022
  • Maximillian Wolf + 7 more

The ECPS’s First Annual International Symposium, titled “The Future Course of Populism in the Post-Pandemic Era: The State of Globalization, Multilateral Governance, and Democracy,” was held online in Brussels on February 18, 2022, and brought together scholars from the political, social, and economic sciences, as well as populism experts and civil society audiences, to discuss the impact of populist policies on the national, regional, and global management of the Covid-19 pandemic. In doing so, the symposium aimed at contributing to informed predictions on the post-pandemic international political landscape. This report is the product of these fruitful conversations and is intended to keep the record of the Symposium. It includes brief summaries of the speeches and, also, links to the full videos of presentations.

  • Research Article
  • Cite Count Icon 10
  • 10.1145/3592620
Global Manager: A Serious Game to Raise Awareness of the Challenges of Being a Project Manager in Global Software Development
  • Jun 13, 2023
  • ACM Transactions on Computing Education
  • Aurora Vizcaíno + 5 more

Project managers tend to confront multiple challenges in Global Software Development (GSD), including misunderstandings about the project requirements, complex estimations of costs, risks, and efforts, along with increases in task allocation and a lack of coordination. “Soft skills” play a fundamental role in solving these challenges, as they are the human or social abilities that facilitate the resolution of conflicts and involve dealing with people and managing projects in their most social and creative dimension. However, developing the soft skills that allow project managers to lead in an effective manner is not an easy task, especially in global or distributed environments, where coordination and control problems are commonplace. One suitable mechanism with which to develop these soft skills is that of serious games, which focus on learning by doing and allow users to simulate real scenarios. The authors of this article are aware of the usefulness of this type of teaching method and have, therefore, developed the serious game described herein. This serious game is denominated as Global Manager and is focused on helping both students and novice project managers to become aware of the factors that may affect GSD projects. Global Manager was evaluated by means of a quasi-experiment based on a pretest-posttest design, which was used to assess whether the game can increase the players’ awareness and knowledge of the factors that a project manager should consider in GSD projects. The results obtained after evaluating the game were quite satisfactory, as the game taught the players to differentiate between global and distributed software projects and to experience situations that may and do occur in these settings. Furthermore, Global Manager helped improve players' perceptions of the importance of different influencing factors in GSD.

  • Conference Article
  • Cite Count Icon 2
  • 10.1109/ispdc2018.2018.00021
Global Application States Monitoring Applied to Graph Partitioning Optimization
  • Jun 1, 2018
  • Adam Smyk + 2 more

The paper presents how an advanced graph partitioning optimization method was implemented inside a novel distributed program design framework PEGASUS DA which provides system support for automatic global application states monitoring. In PEGASUS DA, execution control design of distributed applications is system-supported by program global state monitoring run-time. This support provides an automatic construction of user-defined relevant strongly consistent global application states, computing global control predicates on the constructed states, evaluation of these predicates and sending asynchronous control signals to application threads and processes to stimulate the desired global state-driven reactions. The presented graph partitioning optimization algorithm is based on user-defined mixed partitioning strategies. It includes a combined use of different graph partitioning methods and different criteria for definition and assessment of produced partitions. It runs on top of basic graph partitioning methods available inside the METIS partitioning tool. The partitioning is executed by distributed processes and threads controlled by global states monitoring provided by the PEGASUS DA framework. Its use allows easy design and testing of different graph optimization strategies, finding graph partitioning optimal methods and algorithm parameters. The graph partitioning methods presented in the paper are illustrated by experiments performed with partitioning of a number of benchmark graphs to show partitioning quality (from 5% to 30% of the improvement has been observed) and execution time assessment of the proposed approach.

  • Research Article
  • Cite Count Icon 1
  • 10.1097/01.numa.0000483130.35813.d9
Project management supports the change process
  • Jun 1, 2016
  • Nursing Management
  • David Stanley + 2 more

Project management supports the change process

Save Icon
Up Arrow
Open/Close
Notes

Save Important notes in documents

Highlight text to save as a note, or write notes directly

You can also access these Documents in Paperpal, our AI writing tool

Powered by our AI Writing Assistant