leobz / Organize-matches

Football match management web service: Java, React, MongoDB, Telegram Bot, Vegeta load tests, Certbot and AWS.
MIT License
0 stars 0 forks source link

BE: Dirty Reads en DB distribuida #94

Closed leobz closed 1 year ago

leobz commented 2 years ago

El otro punto y el más importante es que estamos usando una base de datos no relacional y eso puede traer varios problemas ya que podemos tener dirty reads, lo que permitiría agregar más de 13 jugadores. Mi sugerencia es que hagan un lock con Redis, si prefieren hacerlo de otra manera pueden hacerlo pero recuerden que debe funcionar en ambientes altamente concurrentes y distribuidos.

public void addPlayer(User user) {
    if(getPlayers().size() >= 13) {
        throw new ResponseStatusException(HttpStatus.BAD_REQUEST, "Match: Cannot add player. The team is complete.");
    }
    players.add(new Player(user.getId(), user.getAlias()));
}

More Info:

leobz commented 2 years ago

@aleasquini si te copas a buscar el enfoque de Redis @SForlizzi te copio para investigar como hacer las pruebas y la implementacion