ERLDA: Explorando Concorrência e Resiliência com SEDA em Erlang
Resumo
A Arquitetura baseada em Estágios (SEDA) tem sido amplamente estudada para o desenvolvimento de sistemas altamente concorrentes, oferecendo modularidade e controle de sobrecarga por meio de filas assíncronas e ajuste dinâmico de recursos. No entanto, sua adaptação a linguagens funcionais com modelos de concorrência distintos ainda é limitada. Nesse contexto, este trabalho propõe o ERLDA, uma implementação na linguagem funcional concorrente Erlang, inspirada na Lua Staged Event-Driven Architecture (LEDA). LEDA é uma biblioteca em Lua para construir pipelines paralelos e não lineares com base nos conceitos da SEDA. Nossa solução explora processos leves, comunicação assíncrona e mecanismos nativos de supervisão para construir uma arquitetura modular e resiliente. Cada estágio encapsula lógica de processamento e conta com um controlador que ajusta automaticamente o número de workers. O design do ERLDA sugere um potencial promissor para aplicações em sistemas distribuídos escaláveis.Referências
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.
Publicado
23/09/2025
Como Citar
AREIAS, Fernando; NETO, Adolfo.
ERLDA: Explorando Concorrência e Resiliência com SEDA em Erlang. In: WORKSHOP EM ENGENHARIA DE SOFTWARE PARA PROGRAMAÇÃO FUNCIONAL (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.