Designing Architecture for Long-Running Processes with Microservices, Event-Driven Architecture and Websockets to Enhance the User Experience
摘要
There is an increase in the volume of data processed by web applications. Many products derive their value from executing functions over large amounts of data. This makes it essential for these applications to manage data processing effectively while delivering a positive user experience. An approach used in software development for long-running processes while keeping the application responsive is known as a background job. Different web applications try to process long-running processes using different approaches and architectures. This research involves setting up a dummy web application with a single function: to trigger process of sending big number of emails in bulk. The goal is to propose an architecture that is capable of handling this long-running processes using background jobs while allowing the user to continue using the web application seamlessly. The findings of this research demonstrate that the provided architecture can effectively handle extensive, long-running processes while allowing the user to continue using the web application without interruption. The architecture resulting from this research can be effectively applied to various long-running processes. It not only enhances user experience but is also designed for fault-tolerance, scalability and high performance.