Spring Boot

Application and Data / Languages & Frameworks / Frameworks (Full Stack)
Engineering Manager at Taylor and Francis·

We are in the process of building a modern content platform to deliver our content through various channels. We decided to go with Microservices architecture as we wanted scale. Microservice architecture style is an approach to developing an application as a suite of small independently deployable services built around specific business capabilities. You can gain modularity, extensive parallelism and cost-effective scaling by deploying services across many distributed servers. Microservices modularity facilitates independent updates/deployments, and helps to avoid single point of failure, which can help prevent large-scale outages. We also decided to use Event Driven Architecture pattern which is a popular distributed asynchronous architecture pattern used to produce highly scalable applications. The event-driven architecture is made up of highly decoupled, single-purpose event processing components that asynchronously receive and process events.

To build our #Backend capabilities we decided to use the following: 1. #Microservices - Java with Spring Boot , Node.js with ExpressJS and Python with Flask 2. #Eventsourcingframework - Amazon Kinesis , Amazon Kinesis Firehose , Amazon SNS , Amazon SQS, AWS Lambda 3. #Data - Amazon RDS , Amazon DynamoDB , Amazon S3 , MongoDB Atlas

To build #Webapps we decided to use Angular 2 with RxJS

#Devops - GitHub , Travis CI , Terraform , Docker , Serverless

READ MORE
14 upvotes·1 comment·1.8M views
Jon Senterfitt
Jon Senterfitt
·
January 29th 2021 at 7:07AM

But why not just use Contentful?

·
Reply
Associate Software Engineer at Intech Process Automation·
Needs advice
on
Spring Boot
and
ASP.NET Core

For context, I currently use JavaScript (React) and Python (Flask) in my daily routine.

I need your help in choosing either Spring Boot or ASP.NET Core. Both frameworks seem to have mature ecosystems. I would like to hear your thoughts on the following points:

  • Difficulty level of both frameworks
  • Level of community support
  • Career prospects i.e do Spring based jobs pay more or vice versa
  • which one will be helpful if I decide to transition towards a more specialized field like data engineering.

I am asking this because it is something that I am also exploring in parallel. I know that Python and #SQL play a huge role in big data.

READ MORE
4 upvotes·203.3K views
Replies (4)
Software Engineer ·
Recommends
Spring Boot

I'll preface this by saying I haven't ever done work on the Microsoft stack, so take this with a grain of salt.

Community support: Java tends to have a more active community (and much more diverse universe of new open source projects) than .Net (related to below).

Difficulty level: I'd say the Java/Spring stack is more difficult because Java developers tend to use more community projects and have to know which ones to choose in which circumstances (e.g. what logging framework to use? What database connection pooling library to use? What testing framework to use). That being said, most decisions you have to make have choices that are vastly more popular than others. My impression is that .NET guys use stuff from the standard library almost exclusively. If it's not provided there, it's a problem they never thought to solve or maybe write their own (usually the former).

Career prospects: I'll get hate for this probably, but Java/Spring has more jobs than .Net. .NET Core even more so because it's new. Most .NET jobs out there are going to be not Core, and not on anything other than Windows. LinkedIn search for jobs in United States shows 97,103 for Java and 36,448 for C#. That's not to say some individual city might not have more .NET than Java, but by and large Java is bigger. Also, .NET is not dying at the same pace as say Ruby on Rails (sorry Rails fans). I'd say it's ticking very slowly lower, maybe even holding steady. I wouldn't say you're screwed career-wise if you choose .NET. C# is also pretty similar to Java from what I've seen, and I know professionals that have transitioned to Java (though interestingly, I don't know any that did the reverse). Several companies have basically no .NET footprint, for example, Amazon, Google, Facebook, LinkedIn, Twitter all have Java, but basically no C#.

Specialized fields: Neither Spring or .Net are going to be a thing in a field like data science. That's exclusively Python (some R) for the most part. The only exception being that there is some Java in Hadoop, and Scala in Spark (which runs on the JVM). But I think those are generally more for data products being created, and not data science work. I'm also under the impression this is increasingly less the case than historically. Some other specialties might make Java useful, for example Android development.

In short, Java is the COBOL of the modern enterprise (which is both a good and bad thing). I recommend it to anyone over .NET, but not for technical reasons. It's for reasons related to the questions you asked. There are actually reasons I think CLR and C# are actually better from a technical perspective than Java (unsurprisingly, since they had the benefit of hindsight). But that's not what you were asking about...

READ MORE
5 upvotes·4 comments·135.6K views
Taimoor Mirza
Taimoor Mirza
·
July 16th 2020 at 3:39AM

Hearing you say " Java is the COBOL of the modern enterprise" sounds kind of depressing....

·
Reply
Keegan Witt
Keegan Witt
·
July 16th 2020 at 3:59AM

What I mean by that is that it's ubiquitous and stable. And that I'm maybe a touch cynical after being a Java guy for over a decade.

Innovation has gotten better under Oracle. Sun kinda let the language languish from a lack of new features (e.g. functional programming). But the last several years have picked up and I think has made companies that were looking at Scala or whatever alternative languages decide that the updated Java was good enough and they no longer needed an alternative.

Let's be honest though, all these languages (Python, C#, Java) aren't exciting. They've been around a really long time and are stable workhorses. But that's not a bad thing. A language that has a lot of exciting new features is just gonna break my shit more likely than not.

I'd also add that Python is chipping away at Java's dominance it seems (although it's not happening in the city I live in). So good on you for having that in your toolbelt.

·
Reply
Taimoor Mirza
Taimoor Mirza
·
July 16th 2020 at 7:30AM

Python for sure has been dominating for the several years. However, I've heard that when it comes to the field of data engineering, Java has more edge. Perhaps a lot of tools like Apache Spark and Kafka are based on it and it also the ability to handle large scale data, but I am not sure about it. Another reason of me asking for Spring/ASP.NET Core is the nature of Java and C#. Knowing a statically typed language (and the relevant frameworks) forces you

to think about your code in more cautious manner. They give a different perspective about writing code. But again, these are just my thoughts.

·
Reply
Keegan Witt
Keegan Witt
·
July 18th 2020 at 10:31PM

That is true. Java/Scala are pretty big in data intensive applications, though this is a fairly highly specialized area. Since most data science is done in Python, I think fairly often folks just run their stuff in Python and even though it's not all that performant, it's often good enough. Though there's definitely overlap in that problem-space.

It is useful to understand how both dynamic and statically typed languages work. But I wouldn't say a statically typed language makes you have to be more cautious, I'd say it eliminates a category of problems (things not being the type you expect at runtime -- you always know exactly what types you're dealing with). Java is rather verbose in its syntax, but that's not strictly related to it's lack of dynamic types. Scala is much less verbose, but also lacks dynamic types (but it does have type inference, which is one of the things that reduces the amount of ceremony). Static typing also have better tooling (it's easier for an IDE to autocomplete stuff, etc), and better performance (in theory, someone probably could create a dynamically typed language that performs as well as statically typed languages, but it has never happened yet).

·
Reply
Java Application Architect at IBM·
Recommends
Spring Boot

ASP.NET Core is pretty new while spring boot is very old but with a different name. Spring boot is just a pack of spring packages which make your life easier. I also believe that java community is way stronger than c# community... You can do your job in both frameworks and it's up to you what you choose after-all you're going to work on the project/lead it ... but whatever you choose.. after a few days of investment stick with your decision because in both frameworks you'll encounter challenges :)

READ MORE
4 upvotes·132.6K views
View all (4)
Needs advice
on
Spring Boot
and
NestJS
in

I am currently planning to build a project from scratch. I will be using Angular as front-end framework, but for the back-end I am not sure which framework to use between Spring Boot and NestJS. I have worked with Spring Boot before, but my new project contains a lot of I/O operations, in fact it will show a daily report. I thought about the new Spring Web Reactive Framework but given the idea that Node.js is the most popular on handling non blocking I/O I am planning to start learning NestJS since it is based on Angular philosophy and TypeScript which I am familiar with. Looking forward to hear from you dear Community.

READ MORE
7 upvotes·223.5K views
Replies (2)
Recommends
NestJS

NestJS is an excellent framework (they both are). I would say the fact that you're working with Angular makes NestJS a great match, unless you're splitting front and back end between developers. But even in that case I would still go with NestJS for a new project.

Regarding the single threading point, take a look at PM2 which helps to run Node in multiple processes (we use it with NestJS) https://pm2.keymetrics.io/docs/usage/cluster-mode/

Also regarding web server performance in general this is an interesting post showing how Node with outperform Java in a web situation (be careful though, best to check a few posts to make sure these aren't totally biased benchmarks!): https://www.tandemseven.com/blog/performance-java-vs-node/

READ MORE
8 upvotes·1 comment·143.3K views
Slimane Deb
Slimane Deb
·
July 16th 2020 at 12:59AM

Thank you for passing by. Those are some great resources. I will check them and setup my mind.

·
Reply
Recommends
Kotlin

Node.js has only 1 real thread per process; Java JIT will mostly run faster than JS one; So if it happens to be not only I/O... Why do you need most popular, not simply popular? Does Node.js have tech advantages?

READ MORE
3 upvotes·2 comments·143.5K views
Slimane Deb
Slimane Deb
·
July 16th 2020 at 12:58AM

In fact, it will be mostly I/O operations, since I don't have a clear overview of what Spring 5 Reactive Framework, I think I would go for node. Did you happen to work with spring boot + mongodb ?

·
Reply
Sergei Kirjanov
Sergei Kirjanov
·
July 17th 2020 at 9:57PM

1) No, I have not used either spring boot or mongodb.

But I used JVM with dozens cpu cores busy cooperating tightly with each other, and Node will not give me such option.

Say me, if Node ecosystem can give anything, that JVM can not.

2) In MongoDB, a write operation is atomic on the level of a single document, so it's harder to deal with consistency without transactions.

So I'll need a very good reason to start using such system. What is Your reason?

·
Reply
Needs advice
on
Spring Boot
and
Node.js

Hi, I am looking to select tech stack for front end and back end development. Considering Spring Boot vs Node.js for developing microservices. Front end tech stack is selected as React framework. Both of them are equally good for me, long term perspective most of services will be more based on I/O vs heavy computing. Leaning toward node.js, but will require team to learn this tech stack, so little hesitant.

READ MORE
5 upvotes·113.9K views
Replies (1)
Founder & CEO at BaseDash·
Recommends
Node.js
at

It's probably worth investing some time for your team to learn Node.js. There's very little overhead, especially with a framework like ExpressJS, so if your team is familiar with JavaScript it should be a quick process.

It handles I/O really well out of the box, and has a strong community with great open source libraries. Since you're using React on the front end, there's also some benefit to being able to use JavaScript throughout your stack.

READ MORE
10 upvotes·78.3K views
Software Engineer at Amazon·

I only know Java and so thinking of building a web application in the following order. I need some help on what alternatives I can choose. Open to replace components, services, or infrastructure.

  • Frontend: AngularJS, Bootstrap
  • Web Framework: Spring Boot
  • Database: Amazon DynamoDB
  • Authentication: Auth0
  • Deployment: Amazon EC2 Container Service
  • Local Testing: Docker
  • Marketing: Mailchimp (Separately Export from Auth0)
  • Website Domain: GoDaddy
  • Routing: Amazon Route 53

PS: Open to exploring options of going completely native ( AWS Lambda, AWS Security but have to learn all)

READ MORE
6 upvotes·72.4K views
Replies (2)
Founder and CEO at Facile Technolab Pvt Ltd·

I would recommend to upgrade your stack and consider Angular.

Also, if you are working with docker, instead of manually managing your EC2 and docker inside it, switch to ECS as its free of cost and hassle free way to deploy and keep running your containers efficiently.

Good luck.

READ MORE
4 upvotes·6.3K views
Recommends
Ambassador

Instead of Docker , no doubt its great but it has vulnerabilitis and restricitions with dameon and root thread. I would pickup Podman. Also Ambasador is a culmination of Gateway LB and ServiceMesh on istio and Envoy. Great for both East-west and North south microservices communication, policy managment and security with Istio. Spring Boot is not a WebFW. For platform web fw one can use Reactive like SPring WebFlow rather than Spring MVC. For java experience, Spring provides great assets.

I will switch to using Kubernetes whether managed or custom depends on several factors rather than AWS ecs. For LB Amabassador is a great alternative on AWS. One can simply use this on top of ECS clusters. Instead of running in to different frameworks one can simply use one FW at both client and server side for consuming and SSE. I believe one can look at Lot of it depends what you need a full FW or a light librarry like React to be part of V in your MVC. Whether you need a SPA , on Mobile etc... in that case KOTLIN is also another option on Java. Dont go with Android. Best luck. Swapnil S

READ MORE
3 upvotes·5.3K views
Needs advice
on
Vue.js
React
and
AngularJS

What is the best MVC stack to build mobile-friendly, light-weight, and fast single-page application with Spring Boot as back-end (Java)? Is Bootstrap still required to front-end layer these days?

The idea is to host on-premise initially with the potential to move to the cloud. Which combo would have minimal developer ramp-up time and low long-term maintenance costs (BAU support)?

READ MORE
3 upvotes·201.5K views
Replies (3)
Full Stack Developer at Contabilizei·
Recommends
Vue.js

React might be a good option if you're considering a mobile app for the future, because of react native. Although, Vue.js has the easiest learning curve and offers a better developer ramp-up time. Vue.js is great to build SPAs, very clean and organized and you won't have a lot of long-term maintenance problems (like AngularJS, for example). Bootstrap can still be used, but with flexbox there's no need anymore.

READ MORE
9 upvotes·158.6K views
Software Engineer ·
Recommends
React

I recommend React because of less memory occupant compare to Angular, but this will depend on your organisation flexibility. When you use React you need to import different libraries as per your need. On the other side angular is a complete framework.

Performance-wise I vote for react js as it loads up quickly and lighter on the mobile. You can make good PWA with SSR as well.

READ MORE
6 upvotes·158.6K views
View all (3)

What are the best options to host a Spring Boot application that acts as a receiver and publisher from Google Cloud Pub/Sub. I am using Google App Engine to do that, but there is Google Cloud Dataflow and Google Cloud Run that can be used. Which is the best option that can be used for this purpose and also that can handle the failover scenarios as well. Thanks!

READ MORE
5 upvotes·74.7K views
Replies (2)
Artificial Intelligence Fellow ·

You should probably stick with App Engine Standard, if you need customization of some sort and your app needs to do more than just Pub/Sub. If all you're doing is short processing of messages (e.g. pub/sub + writing to a data store), use Cloud Run.

Google Cloud offers the continuum from fully managed to fully manual infrastructure, so it really depends on how much control you want to hand over versus getting things done for you. I've engaged with teams that really just needed App Engine, but were reinventing it with Compute Engine because they didn't know better. Others were trying to use Cloud Functions for the job of Cloud Run. Trust the docs and you'll prosper.

READ MORE
2 upvotes·956 views
Needs advice
on
Spring Boot
Django
and
Android SDK

I've just finished my Masters degree and I am looking at routes into developing my Java knowledge.

The University I studied at requested that all practical Java assignments were done in Java Swing and as such I have a strong understanding in that area of development. Looking at job prospects, many employers are now looking for Java Spring or Android developers.

The plan is to move away from Java SE and skill up in Android development. I was planning on learning Spring Boot to gain exposure in web application development, however looking at StackShare, Django seems to be the more attractive choice for developers.

Does anyone have any advice on which routes/stacks would be the most advisable to adopt. If Spring is not receiving as much exposure or support as Django, is it worth adding to my stack?

READ MORE
6 upvotes·173.3K views
Replies (2)
Software Engineer at Jeffrey Dabo·
Recommends
Spring Boot

Though Java is a strong language and basically the first language to be used in Mobile Development (Android), the framework Spring Boot is not as modern as the Django framework which is based on one of the most popular languages today - Python. Moreover the Python language is far more simpler in syntax and just as powerful as Java. However, Java has scaled up it's performance and the Spring Boot framework can support dynamic web development as well as android development. Whichever way you choose to go, there will be no regrets - trust me.

READ MORE
403 Forbidden (jkda-amoah.info)
7 upvotes·1 comment·90.6K views
Matthew Levene
Matthew Levene
·
May 22nd 2020 at 3:11AM

Hi Jeffrey,

Thank you for your response,

I have a friend that is a front-end developer and is looking to create full web applications with a back-end developer. Since I have a grounding in Java, I will look at Spring Boot and then look at its implementation for Android :)

·
Reply
Recommends
Spring Boot

Spring is generally more an enterprise solution, while I see Django being more startup oriented. Django is lightweight and fast (development time, not runtime!). Spring seems to have more focus on microservice architecture than django, if that matters to you at all. Starting your project in Django, it automatically creates a backend 'admin panel' for you to use and customize. You will not find this in the more serious Spring Boot.

READ MORE
7 upvotes·90.6K views

Hello, I'm very interested in developing APIs, but I am stuck with the decision of which language to use, between .NET Core and Spring Boot. Mostly I work with Microsoft SQL Server and Navision Dynamics. Please advise on the web framework to use between the two. Thanks.

READ MORE
4 upvotes·18.8K views
Needs advice
on
Spring
and
Django

I am a graduate student working as a software engineer in a company. For my personal development, I want to learn web development. I have some experience in Springboot while I was in university. So I want to continue with spring-boot, but I heard about Django. I'm reaching out to the experts here to help me choose a future proof framework. Django or Spring Boot?

Thanks in Advance

READ MORE
5 upvotes·158.4K views
Replies (5)
Recommends
Spring

Kamrul Hasan, Don't choose dying technologies with small communities. How many startups do you think use Spring and Django? Use Google Trends to compare technologies. Study the StackOverflow developer survey and job websites to see what technologies are wanted. Few teams can afford to train you to get up to their level so be a life-long learner. Embrace the dawn of a new industry and become an expert.

READ MORE
7 upvotes·150.6K views
Software Engineer ·
Recommends
Spring

I recommend you stick to Java Spring as you already have experience with the technology, i suggest you master this technology and then if Django seam to be very interesting to you, django is a framework you can easily pickup as python is also easy, you have to probably be able to manage the context switching between a static typed language like Java to dynamic language like python

READ MORE
6 upvotes·150.5K views
View all (5)