Forum: Building VoltDB Applications

Post: VoltDB as Java application server?

VoltDB as Java application server?
Sep 12, 2016
Hello everybody
I have an architectural question concerning the design of enterprise applications based on VoltDB.
As far as I have understood, the only way to start a transaction is to write a stored procedure running within the VoltDB server. So what does that mean for me if I'd like to migrate from a typical Java 3 tier enterprise application with an ordinary SQL database to a new architecture on VoltDB. I think this would imply that a considerable portion of my current applications' business logic has to move from the old-school application servers to the VoltDB database server. In general this were absolutely OK with me as it would probably allow for a dramatic speed boost for our business logic. But I am wondering if this is the scenario which VoltDB is designed for.

For example an online customer registration in our application takes about 20 database updates and inserts which are spread over various loosely coupled software modules all participating in a single transaction. Modularisation is based on an EJB-like approach with a very leight-weight embedded container. I think we could very well migrate the embedded container to the VoltDB in a way that we have the full modularisation model available as before. But this would mean that we deploy all the appropriate libraries to the VoltDB server along with our stored procedures, assuming that we have a full-fledged JVM available there.

Is that a reasonable approach? Can we make a Java application server from the VoltDB server?