Moving from a Java Monolith to Microservices at Squarespace

twitter logo ・1 min read

Julian Applebaum stopped by to discuss the challenges of moving Squarespace's Java monolith to a service-oriented architecture. Julian describes drawing boundaries between different layers of business logic and discovering fundamental tensions in restructuring application logic throughout the migration. Squarespace's journey to a series of RESTful API endpoints was a matter of building services and integrating them slowly as they became reliable. This move was inevitable for Squarespace's team of about 100 engineers.

twitter logo DISCUSS (25)
markdown guide
 

This was actually a great way to approach this sort of breakdown.

On a content development note, I think it'd be cool to throw in little callouts to define acronyms or topics that might not be known to everyone, like when Julian mentions RPC at 3:05.

 
 

Love the web app analogy at 4:30, about changing the wheels of a truck as it moves. Also, I've noticed I have a tendency of wanting to make a feature perfect being rolling it out. As a very junior dev, it's refreshing to hear how y'all are making the move.

 

Great point at 6:20 - much easier to maintain velocity when you're working on smaller pieces rather than within a monolith. This is great! Splitting up the traffic between the current and new code is a smart approach.

 

I liked at 3:43 when Julian talked about the step-by-step process of moving the whole thing over once the design was settled on. Very much a balancing act with a living, breathing application for sure.

 

Love this type of content, videos and podcasts. Especially talks from other developpers, it's amazing what you can learn from other people experiences and perspectives, like I few days ago I heard this Laravel PHP podcasts and that inspired me to start working in a new small project. Well done guys, I hope to see more of this in the next days.

 

Obviously got more traffic than you were expecting,

"The owner of the file has exceeded their traffic limit."

as the response to content.jwplatform.com/videos/TRw3...

The price of success! :)

 

lol that sneaky github mascotte, creeping from the behind the plant pot

 

I'm getting the same Media error as many others:

Error loading media: File could not be played.

I'm on chrome. Looking at the error console It's trying to load what looks like the movie file and then getting a 403.

Would love to be able to watch this!

 
 
 

Payment data in MongoDB, a database which does not garantuee that your data gets actually written. Nice

 
 

This article sums it up pretty well. Most developers dont know that the default is insecure.
Only fsynced is the option that garatuees writes. But then MongoDB does not have performance benefits. There are other NoSQL DBs that are better and For Payment data I would always use a RDBMS.

Wow this article is very interesting ! Glad to know that now :)
Thanks a lot for your sharing

 
 
 

I was a little surprised a monolith ever worked at the scale of squarespace for the past few years. Thanks for sharing

 

Nice video to understand the usages of microservices and what advantages they offer.

 

Really cool approach about how to move from monolith to microservices. :D

 

"The owner of the file has exceeded their traffic limit."

 

Error: Error loading media: File could not be played.

 
 

Awesome content, also many thanks for the subtitles (German listener).

Classic DEV Post from Apr 21

Planning a Real-World Web Application & Key Considerations(Part 1: Project Management)

This series of posts document a high-level process to use when planning a modern web application, from project organization, collaboration considerations and tooling choices during development, all the way through deployment and performance strategies.

dev.to staff profile image
The hardworking team behind dev.to ❤️