Como definir a arquitetura de sistema com apenas 1 entidade?

Galera, estou com um problema de definição aqui no meu projeto.

Nosso projeto cuida apenas do repositório de dados numa base(não é um BD), no caso expomos serviços(WS) basicamente de um CRUD de objetos:

Adicionar Usuario
Alterar Usuario
Remover Usuario
Consultar Usuario
Bloquear Usuario
Desbloquear Usuario

Temos Web Service REST que é responsável apenas pelo repositório da solução. Outras equipes(outras empresas) são responsáveis
pelas regras de negócios das aplicações e apenas chamam nosso serviço que cuida da inserção dos dados.

Nosso caso é peculiar, estou com dúvidas em como dividir minha classe de “negócio”.

Independente do pattern usado, tipo um “UsuarioService”, qual seria melhor opção:

1- UsuarioService(UsuarioBO, ou seja lá o nome que queiram) ficaria com todas as funcionalidades CRUD e bloqueio/desbloqueio…
ServerWS > UsuarioService > UsuarioDAO

2- UsuarioService ficaria com o CRUD, e BloqueioService ficaria com bloqueio e desbloqueio.
ServerWS > UsuarioService > UsuarioDAO
ServerWS > BloqueioService > UsuarioDAO

Ou alguma outra sugestão que tiverem…

O lance que só tenho uma entidade no serviço, que é “Usuario”, eu poderia jogar tudo dentro de um único “UsuarioService” como na
opção 1, mas a classe vai ficar meio carregada, pois apesar de não ter regras de negócios(somos apenas repositório),
tem diversas validações a serem feitas e novas funcionalidades futuras.

O sistema vai evoluir provavelmente apenas com operações diferentes, mas no fundo vai manter o CRUD. Funcionalidades futuras:
Adicionar Usuario Quarentena, Remover Usuario Quarentena. Para as aplicações “clientes” isso são outros serviços, mas no
pra nós são apenas updates.

Queria dividir da melhor maneira esse núcleo, mesmo que gire em torno de apenas uma entidade.

Agradeço opiniões.

Eu usaria a opção 1, ServerWS > UsuarioService > UsuarioDAO, pois tu está lidando com um único objeto, no caso Usuário. Então todas as ações correspondentes a esse objeto, ao meu ver, ficariam no service desse objeto, o UsuarioService. Essa é a maneira que eu analiso para saber a melhor estrutura.

Agora se a ação de bloquear e desbloquear vai ser compartilhada com outros objetos, bem como a regra de negócio envolvida, ai sim seria interessante separar, utilizando a opção 2, para fins de manutenção. Se a regra de bloquei/desbloqueio é unica para Usuário, vai de opção 1 para não misturar.

Espero ter ajudado com a minha experiencia.