“What’s the modern Java framework?” That’s an interesting question to myself.
As most of people are using Spring framework to build java applications, especially using Spring boot. I don’t think there is anyone who doesn’t know about it, as it’s so much popular to java developers.
People usually build backend applications / apis base on Spring frameworks in past 10 years, especially when the Springboot come out in 2013. I know SpringMVC was designed in Spring framework for a while before it. but the configuration is really challenging to developers.
Springboot changed this for us, and we can quickly develop a outline to provide a bunch of apis with it, but without the knowledge about how it works. and we don’t need to start up a Tomcat server individually, That’s really friendly to us for develop a micro-service architecture style application.
In past 10 years, the micro-service style architecture was really important to a big project as there are many people from different domains behind it. Springboot brought a lot of benefits to multiple teams in companies as which allow a beginner can quickly provide a MVP with a good performance.
Okay, Is it a perfect framework? I believe the answer is No.
Many developers have already known the drawbacks about it. e.g., while we don’t need to set up a tomcat, but we need to create an executable java class which include a main(String[]args)
method. This is really a repeat effort and not necessary although it’s minor. and the start up requires some seconds, which will bring issues when the orchestration detect a service is down, then will start a new instance, it will take some seconds, that means during this moment, the service will not be available. but it will be an issue to some special projects.
Springboot is a flexible framework, which provides many interfaces that can be done by developers themselves such as aspect programming code. but actually it will slow down the process of business logic even we don’t implement it. this is too much design and probably given the room to developers and allow them to do some innovation works that could not be better. also, the overhead object management, objects reference each other, it’s too complicated and brought some issues to be resolved, but slowing down the performance of the functionalities. As developers, they need to think about how to save the resources from code design perspective. Regardless this, Springboot only focuses on the web applications, which limits the java technologies actually. As a modern application, it should be executable in web mode and command line, which is getting more important.
As you know, Spring framework has been built with too many functionalities, it’s not a lightweight at all.
So, we built a new framework — tinystruct framework, which can resolve the above issues with simple philosophy.
I made a quick performance test for this framework with wrk
. Here is the result:
$ wrk -t12 -c400 -d30s "http://127.0.0.1:8080/?q=say/Praise the Lord!"
Running 30s test @ http://127.0.0.1:8080/?q=say/Praise the Lord!
12 threads and 400 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 17.44ms 33.42ms 377.73ms 88.98%
Req/Sec 7.27k 1.66k 13.55k 69.94%
2604473 requests in 30.02s, 524.09MB read
Requests/sec: 86753.98
Transfer/sec: 17.46MB
That result is quite impressive. Handling over 2.6 million requests in just 30 seconds with a throughput of over 86,000 requests per second — this shows the raw power and efficiency of the tinystruct framework. But it’s not just about the performance numbers. It’s about the philosophy behind it.
What makes tinystruct framework modern?
No main() method required
Applications can be started directly using CLI commands like bin/dispatcher, with no boilerplate code needed. This removes unnecessary ceremony from the development lifecycle.Unified design for CLI and Web
Unlike Spring Boot which is primarily web-centric, tinystruct treats CLI and Web as equal citizens. This makes it perfect for AI tasks, script automation, and hybrid applications — all from the same codebase.Built-in lightweight HTTP server
Whether it’s Netty or Tomcat, tinystruct integrates the server lifecycle inside the framework. There’s no need for separate containers or complicated configuration files. Just import what you need and run.Minimal configuration philosophy
Configuration is minimized to the essentials. You don’t need to wire up hundreds of beans, and there’s no excessive XML or YAML involved. This improves developer productivity and reduces bugs.Annotation-based routing
The framework provides a clean and intuitive routing mechanism using @Action, eliminating the need for overly complex controller hierarchies.Performance-first architecture
There’s almost zero overhead. No reflection-based bean scanning, no auto-wiring maze, no unnecessary interceptors unless explicitly enabled. This translates into faster response times and smaller memory footprint.Developer empowerment without complexity
With tinystruct, developers are free to focus on real business logic rather than fighting with framework mechanics. It’s designed to be transparent, predictable, and extensible — all without sacrificing control or performance.
Zoom image will be displayed
Conclusion
So, is tinystruct framework the modern Java framework you might be looking for?
If you’re tired of heavy frameworks, redundant lifecycle code, or slow boot-up times…
If you’re looking for something lightweight, CLI-ready, and blazing fast…
If you believe a framework should serve the developer, not slow them down…
Then yes — tinystruct is that framework.
It’s modern not just in terms of technology, but in philosophy — minimalistic, high-performance, and developer-friendly.
Try it out, and you might find the elegance of well-crafted software — but also praising the Lord.
Repo in github, Here we go:
Top comments (0)