ERLDA: Exploring Concurrency and Resilience with SEDA in Erlang
Abstract
Staged Event-Driven Architecture (SEDA) has been widely studied for developing highly concurrent systems, offering modularity and overload control through asynchronous queues and dynamic resource adjustment. However, its adaptation to functional languages with different concurrency models remains limited. In this context, this work proposes ERLDA, an implementation in the concurrent functional language Erlang, inspired by the Lua Staged Event-Driven Architecture (LEDA). LEDA is a Lua library for building parallel and non-linear pipelines based on SEDA concepts. Our solution leverages lightweight processes, asynchronous message passing, and native supervision mechanisms to build a modular and resilient architecture. Each stage encapsulates processing logic and includes a controller that automatically adjusts the number of workers. The ERLDA design shows promising potential for applications in scalable distributed systems.References
Armstrong, J. (2003). Making reliable distributed systems in the presence of software errors. PhD thesis, Royal Institute of Technology, KTH, Stockholm, Sweden.
Cruz, F. (2015). Uma interface de programação para controle de sobrecarga em arquiteturas baseadas em estágios. Master’s thesis, Pontifícia Universidade Católica do Rio de Janeiro (PUC-Rio).
Gordon, M. E. (2010). Stage scheduling for cpu-intensive servers. Technical Report UCAM-CL-TR-781, University of Cambridge, Computer Laboratory. Technical report based on a dissertation submitted December 2009 for the degree of Doctor of Philosophy, University of Cambridge, Jesus College.
Salmito, T., Moura, A. L., and Rodriguez, N. (2015). A stepwise approach to developing staged applications. J. Supercomput., 71(12):4663–4679.
Salmito, T., Moura, A. L. d., and Rodriguez, N. (2013). A flexible approach to staged events. In Proceedings of the 2013 42nd International Conference on Parallel Processing, ICPP ’13, page 661–670, USA. IEEE Computer Society.
von Behren, R., Condit, J., and Brewer, E. (2003). Why events are a bad idea (for high-concurrency servers). In Proceedings of the 9th Conference on Hot Topics in Operating Systems - Volume 9, HOTOS’03, page 4, USA. USENIX Association.
Welsh, M., Culler, D., and Brewer, E. (2001). Seda: an architecture for well-conditioned, scalable internet services. SIGOPS Oper. Syst. Rev., 35(5):230–243.
Cruz, F. (2015). Uma interface de programação para controle de sobrecarga em arquiteturas baseadas em estágios. Master’s thesis, Pontifícia Universidade Católica do Rio de Janeiro (PUC-Rio).
Gordon, M. E. (2010). Stage scheduling for cpu-intensive servers. Technical Report UCAM-CL-TR-781, University of Cambridge, Computer Laboratory. Technical report based on a dissertation submitted December 2009 for the degree of Doctor of Philosophy, University of Cambridge, Jesus College.
Salmito, T., Moura, A. L., and Rodriguez, N. (2015). A stepwise approach to developing staged applications. J. Supercomput., 71(12):4663–4679.
Salmito, T., Moura, A. L. d., and Rodriguez, N. (2013). A flexible approach to staged events. In Proceedings of the 2013 42nd International Conference on Parallel Processing, ICPP ’13, page 661–670, USA. IEEE Computer Society.
von Behren, R., Condit, J., and Brewer, E. (2003). Why events are a bad idea (for high-concurrency servers). In Proceedings of the 9th Conference on Hot Topics in Operating Systems - Volume 9, HOTOS’03, page 4, USA. USENIX Association.
Welsh, M., Culler, D., and Brewer, E. (2001). Seda: an architecture for well-conditioned, scalable internet services. SIGOPS Oper. Syst. Rev., 35(5):230–243.
Published
2025-09-23
How to Cite
AREIAS, Fernando; NETO, Adolfo.
ERLDA: Exploring Concurrency and Resilience with SEDA in Erlang. In: WORKSHOP ON SOFTWARE ENGINEERING FOR FUNCTIONAL PROGRAMMING (SE4FP), 1. , 2025, Recife/PE.
Anais [...].
Porto Alegre: Sociedade Brasileira de Computação,
2025
.
p. 27-32.
DOI: https://doi.org/10.5753/se4fp.2025.14570.