Search icon CANCEL
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
Arrow up icon
GO TO TOP
Full Stack Development with JHipster

You're reading from   Full Stack Development with JHipster Build modern web applications and microservices with Spring and Angular

Arrow left icon
Product type Paperback
Published in Mar 2018
Publisher Packt
ISBN-13 9781788476317
Length 380 pages
Edition 1st Edition
Languages
Tools
Arrow right icon
Authors (2):
Arrow left icon
Sendil Kumar Nellaiyapen Sendil Kumar Nellaiyapen
Author Profile Icon Sendil Kumar Nellaiyapen
Sendil Kumar Nellaiyapen
Deepu K Sasidharan Deepu K Sasidharan
Author Profile Icon Deepu K Sasidharan
Deepu K Sasidharan
Arrow right icon
View More author details
Toc

Table of Contents (16) Chapters Close

Preface 1. Introduction to Modern Web Application Development FREE CHAPTER 2. Getting Started with JHipster 3. Building Monolithic Web Applications with JHipster 4. Entity Modeling with JHipster Domain Language 5. Customization and Further Development 6. Testing and Continuous Integration 7. Going into Production 8. Introduction to Microservice Server-Side Technologies 9. Building Microservices with JHipster 10. Working with Microservices 11. Deploying with Docker Compose 12. Deploying to the Cloud with Kubernetes 13. Using React for the Client-Side 14. Best Practices with JHipster 15. Other Books You May Enjoy

Choosing the right pattern

When starting a new project, it is always difficult to choose an architecture pattern these days. There are so many factors to take into account and it is easy to get confused with all the hype around different patterns and technologies (see Hype Driven Development (https://blog.daftcode.pl/hype-driven-development-3469fc2e9b22)). Following are some general guidelines on when to choose a monolithic web application architecture over a microservice architecture and vice versa.

When to choose a monolithic architecture

The following list can be used as a general guide when choosing a monolithic architecture. This is not a definitive list but gives an idea of when to go with a monolithic architecture over microservices:

  • When the application scope is small and well defined, and you are sure that the application will not grow tremendously in terms of features. For example, a blog, a simple online shopping website, a simple CRUD application, and so on.
  • When the team size is small, say less than eight people (it's not a hard limit but rather practical).
  • When the average skill set of the team is either novice or intermediate.
  • When time to market is critical.
  • When you do not want to spend too much on infrastructure, monitoring, and so on.
  • When your user base is rather small and you do not expect them to grow. For example, an enterprise app targeting a specific set of users.

In most practical use cases, a monolithic architecture would suffice. Read on to the next section to see when you should consider a microservice architecture over monolithic.

When to choose a microservice architecture

The following list can be used as a general guide when choosing a microservice architecture. This is not a definitive list but gives an idea of when to go with microservices architecture over a monolith. Please note that unlike choosing a monolithic architecture, the decision here is more complex and may involve cross consideration among many of the following points:

  • When the application scope is large and well defined and you are sure that the application will grow tremendously in terms of features. For example, an online e-commerce store, a social media service, a video streaming service with a large user base, an API provider, and so on.
  • When the team size is large, there must be enough members to effectively develop individual components independently.
  • When the average skill set of the team is good and team members are confident about advanced microservice patterns.
  • When time to market is not critical. The microservice architecture will take more time to get right up front.
  • When you are ready to spend more on infrastructure, monitoring, and so on, in order to improve the product quality.
  • When your user base is huge and you expect them to grow. For example, a social media application targeting users all over the world.

Though a monolithic architecture would suffice in most cases, investing up front in a microservice architecture will reap long-term benefits when the application grows huge.

For more on these architecture patterns, you can refer to https://articles.microservices.com/monolithic-vs-microservices-architecture-5c4848858f59.
You have been reading a chapter from
Full Stack Development with JHipster
Published in: Mar 2018
Publisher: Packt
ISBN-13: 9781788476317
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at R$50/month. Cancel anytime