hehe ajudou bastante.
Na verdade você descreveu exatamente o que implementei, um ServiceLocator com cache.
Ele obtém as instâncias por demanda, alternando entre nós pré-configurados, encapsulando toda a chamada de lookup, tornando isso transparente para os usuários do SL.
O que ficou faltando foi uma forma não intrusiva de testar se aquela instância no cache ainda é válida, afim de refazer lookup ou ainda em caso de falha tentar outro nó, pra somente ai retornar a instância pro cliente.
Sim, só com beans stateless, caso contrário o cache seria uma solução bastante equivocada.
Isso tudo já está implementado a um tempo, mas queria uma forma mais inteligente de fazer esse teste.
Esses dias fiz um “roadmap” com melhorias do SL e uma delas é justamente fazer esse teste de forma não intrusiva (não me perguntem como é feito hoje hehehe), entre outras opções extras.
Anyway, foi um exercício maravilhoso implementar esse cara! Como ainda vai levar um bom tempo pra todas as aplicações usarem injeção de dependência ele será bastante útil até lá.
Edit: incrível, você realmente descreveu EXATAMENTE o que eu tinha implementado. Há mais recursos disponíveis, vou me informar se posso expô-los… seria legal compartilhar esse cara com a comunidade, seria uma mão na roda!