Faz alguns meses estou desenvolvendo um framework de persistência em
Scala e é hora de fazer o primeiro release!
Activate Persistence Framework
Pluggable object persistence in Scala
Creio que este seja o primeiro framework de persistência completo em
Scala.
É difícil categorizar o Activate para comparar com outros frameworks
similares. Ele é um ORM (Object Relational Mapping), dado que pode ser
utilizado com banco de dados relacionais. Porém, ele também pode ser
utilizado com o Prevayler (Object Prevalence Mapping?) e será possível
utiliza-lo com bancos de dados não relacionais No-SQL (Object No-SQL
Mapping?). Por enquanto a melhor denominação que encontrei é
"Persistência de objeto plugável". Ele persiste objetos, usando
storages plugáveis.
O framework também é um STM (Software Transacional Memory) durável.
Seu core é uma implementação de STM em Scala criada por mim chamada
RadonSTM. O STM fornece para o framework:
- Um mecanismo poderoso para lidar com transações em memória, sem a
necessidade de utilizar o controle transacional do storage (o que é
inexistente em alguns BDs No-SQL, como o Cassandra). - Transações atômicas, consistentes e isoladas com controle de
conflito otimista de leituras e escritas entre transações
concorrentes. Desta forma, é possível utilizar as entidades sem se
preocupar com problemas de concorrência, commit e rollback. Se uma
transação falha, os objetos em memória não ficam em um estado
inconsistente. - Controle de propagação das transações, incluindo transações
aninhadas.
A persistência das entidades é transparente, então só de usar as
entidades dentro de transações elas são automaticamente
persistidas. As entidades também são carregadas de forma lazy e
ativadas (inicializadas) de forma transparente quando utilizadas.
As consultas são type-safe e consistente com a transação corrente,
então as entidades criadas durante a transação também são
pesquisáveis.
É isso ai, espero que gostem!
Obrigado.
Flávio W. Brasil
fwbrasil.net