A software design based on discrete software
components, "services", that collectively
provide the functionalities of the larger
software application
You typically start with the
infamous web application
which does everything on its own
Then you realize that to provide
a chat system to your users
PHP might not be the best...
And soon you also decide,
to improve performances,
that your frontend should have its own
in-memory persistence, to be faster
and you put it into another service
In human-understandable words, SOA is a software design which
embraces splitting a monolithic, totalitarian software
architecture into smaller pieces, thus making them independent,
loosely coupled and more maintainable
1. The user enters the
credentials once in your
frontend
JS APP
AUTH
SERVICE
2. The JS app will forward them
to your Auth webservice
3. The Auth webservice will
then generate the encrypted
JWS and set a cookie with
its value
JS APP
4. The JS app can now just
execute calls using
that cookie
1. The user enters the credentials
once in your frontend
JS APP
1. The user enters the
credentials once in your
frontend
JS APP
AUTH
SERVICE
2. The JS app will forward them
to your Auth webservice
3. The Auth webservice will
then generate the encrypted
JWS and set a cookie with
its value
JS APP
4. The JS app can now just
execute calls using
that cookie