Hay dos modos para iniciar cada nodo: :primary y :secondary.
Cuando el nodo es primario, replica sus mensajes hacia el nodo que esta conectado a él mismo.
Si está en modo secundario, no replica sus mensajes, pero si el mismo ve que se cae el primario, asume su rol.
Para iniciar el nodo: iex --name [email protected] --cookie galleta -S mix
(la cookie debe ser la misma para que se conozcan los nodos entre si)
Configurar el modo inicial y a quién se conecta en mix.exs
Hay un test por cada escenario descripto.
Correrlos con mix test
.
Default port: 3001 (o configurar el deseado en mix.exs
)
Request: JSON del tipo { "name": "subasta", "base_price": 100, "duration": 5}
(Duración en segundos)
Response: OK {"status":"created"}
Request: subastas/subasta
Response: OK {"name":"subasta", "price":"100", "duration":"5", "offerer":"no_offered_yet"}
Request: JSON del tipo {"subasta": "subasta", "comprador": "Charly Garcia", "precio": 150}
Response: OK {"status":"ok"}
Request: JSON del tipo { "name": "subasta",}
Response: OK {"status":"cancelled"}
Request: JSON del tipo { "name": "Charly", "contacto": "[email protected]"}
Response: OK {"status":"created"}
Request: compradores/Charly
Response: OK {"name":"Charly", "contacto":"[email protected]"}
Chau!!! Tira una excepción que hace crashear la app.