La idea de este es hace un key-value store in-memory como excusa de aprender algo de Elixir.
- Soporta los siguientes métodos:
write(key, value)
,read(key)
,delete(key)
,clear
,exist?(key)
,get_stats
yconnect(node)
. - Supervisión por nodo.
- Replica cada escritura a todos los nodos conectados.
- Replica la información a un nuevo nodo.
- Al recuperarse un nodo, recupera la información del resto.
Hay 4 procesos:
- Cache.Server: este es el que controla el estado de los datos y realiza el CRUD con los mismos.
- Cache.Replicator: se encarga de enviar y recibir los datos a los demás nodos.
- Cache.Logger: se usa para mostrar información en la consola.
- Cache.Supervisor: se encarga de mantener vivos a los demás procesos.
Podemos usar iex de la siguiente manera:
> iex --sname nodo1 -S mix
Esto es simplemente un experimento práctico. Cualquier comentario es bienvenido.