How to Choose the Right Tech Stack: Lessons from a Java Backend Veteran
The author, a seasoned Java backend developer, shares personal experiences and insights on evaluating efficiency, ecosystem, and team dynamics when selecting technologies—from legacy frameworks and databases to modern big‑data tools like Spark and Flink—offering practical guidance for developers and teams navigating today’s rapidly evolving tech landscape.
1. Introduction
The author reflects on a career that started with passive learning of popular technologies, progressed to questioning why certain tools are used, and now actively exploring cutting‑edge frameworks.
Having worked as a Java backend developer for seven‑eight years, the author has experienced the shift from jQuery and EasyUI to front‑back separation, from Hibernate+Struts to Spring MVC and Spring Boot, and from early Redis/Memcached battles to the dominance of Redis.
Later the author moved into the big‑data field, witnessing the rise and fall of MapReduce, Storm, JStorm, Spark, and the emergence of Flink.
The evolution of databases from traditional relational to NoSQL, NewSQL, data lakes, and modern distributed OLAP/OLTP systems is also discussed.
2. Efficiency
2.1 No Absolute Efficiency
Performance numbers are only meaningful when variables are controlled; a 5% gain may not justify trade‑offs.
2.2 Is Efficiency Absolutely Important?
Examples such as RabbitMQ vs. ActiveMQ vs. ZeroMQ show that the fastest solution is often not adopted due to ecosystem and team familiarity.
3. Environment
3.1 Domestic Development Landscape
Comparing MyBatis and Hibernate illustrates how technologies popular in China differ from global trends.
Google Trends and StackOverflow data show Hibernate’s worldwide popularity versus MyBatis’s regional dominance.
Community influence, language proficiency, and reliance on domestic resources also shape technology adoption.
4. Team
4.1 Technical Background and Preferences of Leaders
A 2017 streaming project chose JStorm over Spark Streaming because the team lead favored JStorm, even though the author was more familiar with Spark. The project succeeded but later suffered from maintenance issues due to the lead’s limited understanding of JStorm.
The experience highlights that a programmer’s competitiveness lies not only in quickly learning new tools but also in deep comprehension that enables rapid problem solving.
Choosing a technology should consider efficiency, learning curve, operational costs, and team expertise.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
Java High-Performance Architecture
Sharing Java development articles and resources, including SSM architecture and the Spring ecosystem (Spring Boot, Spring Cloud, MyBatis, Dubbo, Docker), Zookeeper, Redis, architecture design, microservices, message queues, Git, etc.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
