Professional Documents
Culture Documents
Ygo Sakamoto - Low Hanging Software Architectures
Ygo Sakamoto - Low Hanging Software Architectures
Low Hanging
Software
Architectures
software architectures and problems they solve
for you to apply in your project today!
Yugo Sakamoto
/
--
Table of
contents
Introduction
Yugo Sakamoto
Architecture Patterns
Architectures
Layered Architecture
Event Driven Architecture
Microservice Architecture
Problems
Scaling
Evolving
Reducing Bugs
Solving Common Problems
Reach out!
/
Introduction
Low Hanging Software Architecture are basic
architecture concepts that bring lots of value
and results to your project, but that are easy
to learn and apply.
Yugo Sakamoto
Yugo Sakamoto - Software Architect
/
--
Yugo sakamoto
Interested in having
amazing projects using the
best architectures? Ping
me and we can have a
conversation.
Twitter: @ymoto
/
--
/
--
ArCHitectures
well-defined architecture patterns helps you to define the
characteristics and shape of the software architecture.
/
--
Layered Architecture
Organize your application into
horizontal layers, each layer with a
specific role and responsibility.
Presentation, business and persistence are
standard layers for this pattern, and it’s a
great starting point for most projects.
Keeps components decoupled between
different layers and is easy to understand by
every developer.
The problem with this architecture pattern is
that horizontal separation of your entire
application may bloat your code sometimes
or push you to a monolithic development
approach, which unfit in particular scenarios.
/
--
/
--
Microservice Architecture
If you split the application into
independent, distributed and
separately deployable
components you will have a high
decoupled and more evolvable
architecture. This is Microservices.
Microservices are responsible for a part of
your application domain.
These components can communicate with
each other through remote protocol such as
JMS, REST, SOAP or any others.
The distributed nature allows you to achieve
higher scalability and more frequent and
independent deployment pipelines.
This pattern is powerful but comes with a lot
of complexity.
Many distributed components, working
asynchronously, deployed independently,
each with their own life-cycle, version and
even database. Sometimes written in
different programming languages.
All this requires advanced tooling and a
good trade-off before applying it.
/
--
PROBLEMS
architecture patterns solve real life problems. But each one
has different objectives. Understanding the trade-off helps
you choose the correct architecture for your problem.
/
--
Scaling
/
--
Evolving
/
--
Reducing Bugs
/
--
/
--
reach out!
Follow Yugo Sakamoto on twitter to
get daily tips about software
architectures and leadership.
@ymoto