My FeedDiscussionsHeadless CMS
New
Sign in
Log inSign up
Learn more about Hashnode Headless CMSHashnode Headless CMS
Collaborate seamlessly with Hashnode Headless CMS for Enterprise.
Upgrade ✨Learn more

From Monolith to Microservices

Default profile photo
Anonymous
·Nov 10, 2018

Migrate feature by feature vertically

78%

Replace front, then the implementation

11%

Other approach

11%

18 votes · Closed

Hi all,

So imagine a SMB, who’s core product is an ASP.NET MVC Web Application + SQL Server 2008 DB, built several years ago using a low-code platform, with little to no maintenance and evolution for some years now. The result of years of running the ship is a huge monolith, with identified scalability and performance problems, and an outdated and unattractive Dev Stack, which makes it harder to attract and keep talent.

We are considering a Dev Stack revamp and we want to move to a Containerized Microservices Architecture – being a .net company we are considering .net Core Microservices – with an HTML5/CSS3 frontend powered by ReactJS, which will integrate with the MS Layer through a RESTful API.

What do you think about this Architecture?

Regarding this shift, we’re definitely not Google, so we cannot afford to have a whole army of Developers building the new platform under this new paradigm, while the other half of the crew evolves and maintains the Product.

How would you slice the huge monolith into Microservices?

Would you go feature by feature and “migrate” it to the new Architecture and look&feel? For a couple of months this would be a bit strange for the end User, as he’d see the familiar screens mixed with new ones (the ones already built under the new Architecture), even though the new screens would be grouped by feature (the already revamped features)?

Or

Would you take the time to migrate the whole front-end to the new HTML5/CSS3 ReactJS powered layer, and integrate that with the existing Controllers through the RESTful API, so that the visual change could be done on a one shot mode, and then slowly go feature by feature and replace the existing controllers by the new microservices (just shifting the API from the current controller to the new microservice?

Or would you take a different approach?

I’d love to hear your saying on these!

Thank you!