4. 4
Monolithic Approach
User Interface
Application Layer
(Business Logic)
Storage/Persistence
Layer
Key Functionalities
• Watch Videos
• Bookmark videos
• Index Videos
• Share Videos
• Like Videos
Key Functionalities
• Authenticate Users
• Payment and Billing
• Personalization
• Localization
• Translation
Key Functionalities
• Store views
• Store Bookmarks
• Store Likes
• Store Images
• Store Billing
http://www.threelly.com/
Design Options
• HTML, CSS,
Vue.JS, Angular,
Design Options
• Node, Express, Python,
PHP, e.t.c.
Design Options
• MySQL, PostgreSQL,
MongDB, S3 buckets,
e.t.c
5. 5
Limitations with Monolithic Applications
www.threelly.com
• Monolithic applications become complex where no single
developer (or group of developers) understands it all.
• Limited reuse is realized across monolithic applications.
• Scaling monolithic applications can often be a challenge.
• Hard to deploy and maintain.
• Lack of choice in technology and best of breed solutions
as a single development stack (i.e, JEE or .NET, Python)
is often used end to end.
7. 7
What is Microservices?
A microservice is a small, loosely
coupled distributed service.
Microservice Architectures evolved
as a solution to the scalability and
innovation challenges with Monolith
architectures (Monolith applications
are typically huge – more 100, 000
line of code). It allows you to take a
large application and decompose or
break into easily manageable small
components with narrowly defined
responsibilities.
10. 10
Microservices Approach For Threelly AI
www.threelly.com
Bookmarking
Microservice
Indexing
Microservice
Liking
Microservice
Other
Microservice
…
3rd Payment
Service
3rd Party
File Storage
Service
REST
API
REST
API
REST
API
REST
API
API
Gateway
17. 17
Challenges of Microservices
Increased Complexity for
Testing and Deployment
Potential Duplication of effort
in different services
Higher Chance of failure during
communication between
services
More upfront planning needed
18. 18Summary
“The golden rule: can
you make a change to a
service and deploy it by
itself without changing
anything else?”
― Sam Newman, Building Microservices