MicroStream se utiliza de manera productiva en proyectos críticos para el negocio durante más de seis años. Está probado, es estable y tiene una alta calidad de código. Ahora es el momento de abrirlo. El código abierto proporciona un gran valor y grandes beneficios para nuestra comunidad. El código fuente ahora está disponible para que cualquiera pueda leerlo.
Presentado por primera vez en abril de 2019, MicroStream es un motor de persistencia para almacenar cualquier tipo de objeto Java, por ejemplo, listas y colecciones, así como cualquier documento. Es similar a la serialización incorporada de Java pero mucho más potente. Puede persistir, cargar o actualizar gráficos de objetos de forma parcial y bajo demanda, a diferencia de la serialización de Java, que solo puede persistir en gráficos de objetos completos. También es muy eficiente, tanto en tamaño como en rendimiento.
MicroStream no es un reemplazo completo para un sistema de administración de bases de datos (DBMS), ya que carece de administración de usuarios, administración de conexiones, administración de sesiones, etc., pero en la visión de los desarrolladores de MicroStream, esas características podrían implementarse mejor en aplicaciones de servidor dedicadas.
MicroStream considera que DBMS es una forma ineficaz de conservar datos, ya que cada base de datos tiene su estructura de datos y, por lo tanto, los datos deben convertirse y mapearse con una capa adicional, como un mapeador relacional de objetos (ORM). Estos marcos agregan complejidad, aumentan la latencia e introducen pérdida de rendimiento.
La tecnología MicroStream Data-Store elimina la necesidad de estas conversiones y todo se puede almacenar directamente en la memoria, lo que lo hace súper rápido para las consultas y simplifica la arquitectura usando simplemente Java.
Según su sitio web , el rendimiento aumenta 10 veces para una consulta simple con un pico de 1000 veces para una consulta compleja con agregación (suma) en comparación con JPA. Alternativamente, también ofrecen conectores para bases de datos como Postgres, MariaDB, SQLite y almacenamiento de archivos sin formato (incluso en la nube) para conservar los datos.
Otras características notables son las transacciones ACID, E / S multiproceso y carga diferida.
El sistema de consultas utiliza la API Java Streams para buscar gráficos de objetos en la memoria. Considere el siguiente método:
public static void booksByAuthor()
{
final Map<Author, List<Book>> booksByAuthor =
ReadMeCorp.data().books().stream()
.collect(groupingBy(book -> book.author()));
booksByAuthor.entrySet().forEach(e -> {
System.out.println(e.getKey().name());
e.getValue().forEach(book -> {
System.out.print('\t');
System.out.println(book.title());
});
});
}
Conservar datos en un almacenamiento de archivos es tan simple como:
DataRoot root = microstreamDemo.root();
root.getCustomers().add(customer);
microstreamDemo.store(root.getCustomers());
Markus Kett , CEO y cofundador de MicroStream, habló con InfoQ sobre MicroStream.
InfoQ: ¿Cuál fue la inspiración para el código abierto MicroStream?
Markus Kett: Para nosotros, como desarrolladores apasionados de Java, es el mayor reconocimiento y motivación cuando a los desarrolladores les encanta usarnos. MicroStream como código abierto proporciona un gran valor y grandes beneficios para nuestros usuarios. Ahora es posible comprender el código, el principio funcional de MicroStream, depurar, encontrar y corregir errores. Ofrece a los desarrolladores la flexibilidad de personalizar y ampliar MicroStream por su cuenta. Además, las revisiones permanentes de la base del código y los numerosos ciclos de prueba por parte de muchos desarrolladores aumentarán la estabilidad de MicroStream. El código abierto crea confianza y reduce el obstáculo de entrada. Ahora, estamos orgullosos de ser parte de la fantástica comunidad global de código abierto.
InfoQ: ¿Cómo ha respondido la comunidad Java al hecho de que MicroStream sea de código abierto?
Kett: Como muchos grupos de usuarios de Java en todo el mundo nos dieron la oportunidad de presentar MicroStream a sus miembros, muchos desarrolladores de Java estaban interesados en obtener MicroStream como código abierto. Después de abrir MicroStream, recibimos excelentes comentarios.
InfoQ: ¿Qué hay en el horizonte para MicroStream?
Kett: MicroStream es la capa de persistencia predestinada para microservicios que debería tener su propia persistencia, porque en comparación con los marcos ORM, MicroStream es súper liviano y simple de implementar, de hecho, una micro persistencia. Es por eso que varios proveedores de marcos de microservicios están interesados en integrar MicroStream. Actualmente estamos trabajando junto con el equipo de Helidon en Oracle, así como con el equipo de Open Liberty en IBM en la integración de MicroStream con Project Helidon y Open Liberty.
Para brindarles a los usuarios la mejor comodidad y soporte posibles, estamos trabajando en una nube de MicroStream que nos permite configurar un clúster de MicroStream que ejecute aplicaciones distribuidas mediante la replicación de gráficos de objetos entre procesos de JVM, así como servicios de almacenamiento de alta disponibilidad y servicios completamente administrados. .
La implementación de MicroStream para Android, que ya está disponible, se está reescribiendo actualmente. Permite el uso de MicroStream en dispositivos móviles y de borde, así como sincronizar estos dispositivos de una manera súper simple con aplicaciones Java y microservicios que se ejecutan en la nube.
MicroStream se puede utilizar como una dependencia única con Maven. Los desarrolladores interesados en contribuir a MicroStream pueden comenzar visitando su repositorio de GitHub .