Speedment is a software tool for enterprises that run Java applications and relational databases, which can increase the data access by order of magnitudes and reduce development time by 50%. It works by creating a virtual data object, retrieving only the data the application needs when it needs it.
Speedment was originally developed by researchers and engineers based in Palo Alto with the purpose to simplify and streamline the development of Java database applications. This was achieved in two ways; first a Java Stream API, allowing the developer to use pure Java in their full application and also a code generation component, where Speedment automatically creates a Java representation of the database. For the developer, this means they do not need to write boilerplate code, Java entity classes or using SQL-coding/Hibernate. The risk for bugs is minimized and the code becomes short, concise and bug-free. The developer will reduce development time.
Speedment provides immediate relief from performance bottlenecks by accelerating application response times by orders of magnitude and giving database load reduction and application latency reduction. This is achieved by a unique technology including Speedment Datastore, In-JVM memory, and an Off-Heap Storage engine.
Upgrading a legacy database system can be a daunting task. With large numbers of tables in the database and many lines of code both in backend and frontend upgrading it all to a more modern data access framework may incur both high costs and considerable risk. Speedment is designed to facilitate a piecewise implementation, where you can keep your existing database. The Speedment tool coexists nicely with the current backend and works for any database; Oracle, MySQL, Microsoft SQL Server, PostgreSQL, DB2, MariaDB or AS400. It is possible to deploy Speedment in the cloud, standalone, or on an app server.
Speedment has an easy to use GUI to enable developers to connect to a database and configure what part of the data that is needed in the application.
Speedment analyses the underlying data sources’ metadata and automatically generates Java code which directly reflects the structure (i.e. the “domain model”) of the underlying data sources.
Speedment creates a snapshot of data from your database and places the copy within the JVM as close as possible to your application. All operations are performed using an Off-Heap Storage Engine which has no impact on Garbage Collect (GC) times. Data will be received in sub-millisecond time. The original database is allowed to focus solely on storing and validating data and data constraints.
Speedment allows development of database applications by using pure Java streams. You will not need to write your own mapping layer or use SQL or Hibernate. This is possible since the Speedment Stream ORM fully handles the SQL specifics of the application. Abstracting away the query language, the development becomes faster and less error-prone.