This was particularly necessary because I'm using an M2 Mac, while my server runs on Intel architecture. After some trial and error, I managed to set up a Continuous Integration (CI) process that built the GraalVM project and uploaded it to Docker. Getting GraalVM to work was nontrivial but not too hard. Faster startup times also meant quicker recovery from failures, a crucial aspect for maintaining a reliable service. The idea was that with lower memory requirements, I could run more server instances, leading to better scalability and resilience. My interest in GraalVM native image for gdocweb was primarily driven by its promise of reduced memory usage and faster startup times. However, most other aspects were relatively simple and the best compliment I can give to Spring Boot 3.x is that it's very similar to Spring Boot 2.x. It was a learning curve, adjusting to these changes and figuring out the new way of doing things. These modifications rendered most online samples and guides obsolete, breaking a lot of what I had initially set up. The transition to Spring Boot 3.x had its own set of challenges, particularly with the changes in security configurations. It was a reminder that when you're working with cutting-edge versions of technologies, there can be unexpected bumps along the road. The review tool was tailored for JDK 11, and although it worked with JDK 21, it still added a bit of stress to the process. Here's where the choice of Java 21 threw a curveball. During the process of integrating Google API access, I had to go through a security CASA tier 2 review. However, this decision wasn't without its hiccups. ![]() ![]() It's a conservative choice in the sense of its long-standing reputation, but innovative in its features and capabilities. Similarly, Spring Boot 3.x, despite being a newer version, comes from a lineage of robust and well-tested frameworks. Java, being a mature technology, offered a sense of reliability even in its latest iteration. Cost is a huge factor in such projects, and squeezing the maximum throughput from a server is crucial in these situations. Virtual threads were a major part of the decision to go with Java 21. It's always tempting to use the latest and greatest, but with Java 21, it wasn't just about using something new it was about leveraging a platform that has stood the test of time and has evolved to meet modern development needs. The decision to go with the current Long-Term Support (LTS) version of Java was a no-brainer. This freedom led me to choose Java 21 and Spring Boot 3.x for this project. When you're spearheading a project on your own, like I was with gdocweb, you have the liberty to make technology choices that might be more challenging in a team or corporate environment. Java 21 and Spring Boot 3.x: Innovation and Maturity Here's a short video explaining gdocweb for the general public: It's for users who seek a hassle-free way to publish and maintain their content, but also for savvy users who enjoy the power of GitHub but don't want to deal with markdown nuances. I decided to build gdocweb to eliminate the complexities typically associated with website building and documentation. It's a simple web builder that generates free sites with all the raw power of GitHub behind it and all the usability of Google Docs. In simple terms, gdocweb connects Google Docs to GitHub Pages. It's a no-frills, honest recount of the choices, changes, and the occasional 'aha' moments of an engineer trying to make something useful and efficient.īefore we dive into the technical intricacies and the decision-making labyrinth of building gdocweb, let's set the stage by understanding what gdocweb is and the problem it solves. I also went with Postgres and JPA, but steered clear of migration tools like Flyway. I'll be diving into why I chose Java 21 and Spring Boot 3.x, ditched GraalVM after some trial and error, and why a simple VPS with Docker Compose won out over more complex options. This is the story of building gdocweb, a tool that I hoped would make life easier for many. Starting a new project is always a mix of excitement and tough decisions, especially when you're stitching together familiar tools like Google Docs with powerhouses like GitHub Pages. ![]() Considering HTMX for Dynamic Functionality.React: Modern but Not a One-Size-Fits-All Solution.Front-End: Thymeleaf Over Modern Alternatives.Steering Clear of Managed Containers & Orchestration.Java 21 and Spring Boot 3.x: Innovation and Maturity.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |