Releasing Software at Factor House: Our Java Compatibility and Evolution Strategy
At Factor House, delivering reliable software is at the heart of everything we do. A key aspect of this commitment lies in our approach to managing Java compatibility.
Our suite of products works seamlessly across a range of JVM versions—from Java 8 to Java 17 and beyond. We balance supporting large enterprises still demanding Java 8 releases while staying ahead with JVM advancements, such as catering to customers requiring Graviton builds for deployments targetting ARM.
This blog post outlines our current release process and future plans for evolving Java support, including our approach to deprecating older versions in a way that respects the needs of diverse customer bases.
Our Current Java Release Strategy
We release our software in two primary formats: as JAR files and through Docker containers. Here’s an overview of our compatibility and deployment practices:
JAR Releases
- Java 8: Supported for customers who rely on legacy environments.
- Java 11: A modern, stable release offering long-term support (LTS).
- Java 17: Our recommended LTS version for customers, ensuring compatibility with newer environments and features.
Docker Releases
- We use Amazon Corretto 17 as the base image for our Dockerfiles.
- Our Docker images include the Java 17 JAR by default.
Compatibility Matrix
Java JARs
JAR Version | Supported Java Versions | Notes |
---|---|---|
Java 8 | Java 8 | Legacy support, phased-out over time |
Java 11 | Java 11, Java 17 | Suitable for many modern deployments |
Java 17 | Java 17+ | Recommended for most customers |
Docker Releases
Deployment Type | Base Image | JAR Version | Notes |
---|---|---|---|
Docker | Amazon Corretto 17 | Java 17 | Future-proof, stable LTS |
Helm Charts | Amazon Corretto 17 | Java 17 | Future-proof, stable LTS |
Our Commitment to Compatibility
Backward Compatibility: We understand that some customers operate in environments requiring older Java versions. That’s why we’ve maintained Java 8 and Java 11 compatibility in addition to Java 17.
Future-Ready: We’re committed to adopting more recent LTS versions of Java as they become available, ensuring our software leverages the latest performance and security improvements.
Transition Planning: While we currently support Java 8, we recognize its end-of-life status in many contexts. As part of our roadmap, we plan to phase out Java 8 support gradually, allowing customers ample time to transition to newer versions.
Moving Closer to Java's LTS Release Cycle
Moving forward, Factor House will align more closely with Java's LTS release cycle. For instance, LTS GA support for Java 25 commences in September 2025, and we plan to:
- Transition our JAR compilation targets and base Docker images to the new LTS versions as they are released.
- Phase out older versions in alignment with Java's premier support timelines.
This strategy will enable us to provide customers with timely access to the latest Java features and optimizations while maintaining a predictable and transparent deprecation schedule.
Looking Ahead
Docker Image Evolution
Over time, our base Docker image will evolve to reflect newer LTS Java versions. For instance, as future LTS releases like Java 21, Java 25, or beyond become widely adopted, we’ll:
- Transition to the new LTS version as our default base image.
- Update our JAR compilation targets to align with the latest versions.
Phasing Out Java 8
- We will work closely with customers still using Java 8 to support their migration efforts.
- A detailed timeline for deprecating Java 8 will be communicated well in advance to ensure a smooth transition.
Why This Matters
Adopting this strategy ensures that:
- Our software is secure, leveraging the latest Java features and updates.
- Customers have flexibility, whether they’re operating legacy systems or embracing modern environments.
- Factor House remains future-focused, delivering cutting-edge solutions without compromising reliability.
Conclusion
At Factor House, we’re committed to balancing innovation with stability. By supporting multiple Java versions and planning for future transitions, we ensure that our customers can deploy our software confidently, no matter their infrastructure. Stay tuned for updates as we continue to evolve our Java release strategy and roadmap.
Have questions or need guidance on transitioning to a newer Java version? Reach out to our support team—we’re here to help!