Coder Social home page Coder Social logo

kornelrabczak / airomem Goto Github PK

View Code? Open in Web Editor NEW

This project forked from airomem/airomem

0.0 0.0 0.0 383 KB

Prevalance/Prevayler based persistence engine

License: Apache License 2.0

Java 15.21% HTML 0.35% JavaScript 68.50% CSS 15.17% Scala 0.77%

airomem's Introduction

airomem

Airomem is Java persistence framework based on Prevayler. The most important features are:

  • speed,
  • simplicity.

This is achieved because there is no Database. There is only persistence.

#Motivation

I hava lot of positive experience with Prevayler - quite an old project published by Klaus Wuestefeld. Pure Prevayler lacks however some features and is not perfectly safe for unexperienced teams.

Goal of this project is to provide Prevayler based persistence with extra features such as Java 8 Lambda expressions, Kryo based serialization, rich collections (CQEngine) and sanity checks that make Prevayler easier to implement. (Quite honestly Prevayler is perfectly easy to implement, it just does not always work as people expect).

So airomem = Prevayler | safety | tools | lambdas | kryo | build...

Take a look at Features.

#Basic Lets assume that system is build without need of persistence. All operations are mode on objects in memory. Instead of SQL queries, objects are traversed and filtered using stream API.

Instead of making INSERTS, UPDATES, transactions, there are only changes on objects in java. There is no Session, no EntityManager, no cache ( oh,wait a moment - everything is cache...), no problems with ORMs, no performance penalties, no DB deadlocks.

Such world exist and is fun to work with. And what is more funny persistence in this world also exists.

There are only two things to do:

  • all objects from domain must be serializable (this is typically easy to achieve),
  • all operations that change domain must be enclosed in commands.

#How simple is that? (Sample Project) Chat Sample

#Performance - this thing is insane This thing must come. How fast is that? Can be more than 1000 times faster than traditional SQL / ORM approach...

I've tried to measure spped in operations per second using jpab project. Results are here.

In reality one can expect to achive performance of 10 up to 1000 faster compared to DB/ORM approach.

#More Please read more on: Wiki

airomem's People

Contributors

jarekratajski avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.