Philosophical Architecture in Grails
description
Transcript of Philosophical Architecture in Grails
![Page 1: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/1.jpg)
Philosophical Architecture
(in Grails)
Philosophical Architecture
(in Grails)
![Page 2: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/2.jpg)
David DawsonDavid Dawson
CEO @ Simplicity ItselfCEO @ Simplicity Itself
@davidthecoder@SimplicityItse1
@davidthecoder@SimplicityItse1
![Page 3: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/3.jpg)
What is Architecture?
What is Architecture?
![Page 4: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/4.jpg)
Architecturevs
Design
Architecturevs
Design
![Page 5: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/5.jpg)
Limitless OptionsFor Design
Limitless OptionsFor Design
![Page 6: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/6.jpg)
Only a few ArchitecturesOnly a few
Architectures
![Page 7: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/7.jpg)
Grails' 'default'Architecture
Grails' 'default'Architecture
![Page 8: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/8.jpg)
Grails' 'default'Architecture
N-Tier
Grails' 'default'Architecture
N-Tier
![Page 9: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/9.jpg)
Grails' 'default'Architecture
N-TierData Centric
Grails' 'default'Architecture
N-TierData Centric
![Page 10: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/10.jpg)
![Page 11: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/11.jpg)
My Green Field ProjectMy Green Field Project
![Page 12: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/12.jpg)
My Green Field ProjectMy Green Field Project
Web/ MVC LayerWeb/ MVC Layer
![Page 13: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/13.jpg)
My Green Field ProjectMy Green Field Project
Web/ MVC LayerWeb/ MVC Layer
Service LayerService Layer
![Page 14: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/14.jpg)
My Green Field ProjectMy Green Field Project
Web/ MVC LayerWeb/ MVC Layer
Service LayerService Layer
Data LayerData Layer
![Page 15: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/15.jpg)
My Green Field ProjectMy Green Field Project
Web/ MVC LayerWeb/ MVC Layer
Service LayerService Layer
Data LayerData Layer
DataControllerDataController UserControllerUserController AuthControllerAuthController
DataServiceDataService UserServiceUserService
UserUser
![Page 16: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/16.jpg)
My Green Field ProjectMy Green Field Project
Web/ MVC LayerWeb/ MVC Layer
Service LayerService Layer
Data LayerData Layer
DataControllerDataController UserControllerUserController AuthControllerAuthController
DataServiceDataService UserServiceUserService
UserUser
OAuthControllerOAuthController
RandomServiceRandomService
UserSupportUserSupportPointPoint
![Page 17: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/17.jpg)
My Green Field ProjectMy Green Field Project
Web/ MVC LayerWeb/ MVC Layer
Service LayerService Layer
Data LayerData Layer
DataControllerDataController UserControllerUserController AuthControllerAuthController
DataServiceDataService UserServiceUserService
UserUser
1.21.2
OAuthControllerOAuthController
RandomServiceRandomService
UserSupportUserSupportPointPoint
DataControllerDataController UserControllerUserController AuthControllerAuthController
DataServiceDataService UserServiceUserService
UserUser
OAuthControllerOAuthController
RandomServiceRandomService
UserSupportUserSupportPointPoint
![Page 18: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/18.jpg)
My Green Field ProjectMy Green Field Project
Web/ MVC LayerWeb/ MVC Layer
Service LayerService Layer
Data LayerData Layer
DataControllerDataController UserControllerUserController AuthControllerAuthController
DataServiceDataService UserServiceUserService
UserUser
1.31.3
OAuthControllerOAuthController
RandomServiceRandomService
UserSupportUserSupportPointPoint
DataControllerDataController UserControllerUserController AuthControllerAuthController
DataServiceDataService UserServiceUserService
UserUser
OAuthControllerOAuthController
RandomServiceRandomService
UserSupportUserSupportPointPoint
DataServiceDataService
DataServiceDataService
DataServiceDataService MehServ iceMehServ iceBlahServiceBlahServiceDataServiceDataService GahServiceGahService
DoWorkServiceDoWorkService
![Page 19: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/19.jpg)
My Green Field ProjectMy Green Field Project
Web/ MVC LayerWeb/ MVC Layer
Service LayerService Layer
Data LayerData Layer
DataControllerDataController UserControllerUserController AuthControllerAuthController
DataServiceDataService UserServiceUserService
UserUser
1.31.3
OAuthControllerOAuthController
RandomServiceRandomService
UserSupportUserSupportPointPoint
DataControllerDataController UserControllerUserController AuthControllerAuthController
DataServiceDataService UserServiceUserService
UserUser
OAuthControllerOAuthController
RandomServiceRandomService
UserSupportUserSupportPointPoint
DataServiceDataService
DataServiceDataService
DataServiceDataService MehServ iceMehServ iceBlahServiceBlahServiceDataServiceDataService GahServiceGahService
DoWorkServiceDoWorkService
VIEWSVIEWS
![Page 20: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/20.jpg)
My Green Field ProjectMy Green Field Project
Web/ MVC LayerWeb/ MVC Layer
Service LayerService Layer
Data LayerData Layer
DataControllerDataController UserControllerUserController AuthControllerAuthController
DataServiceDataService UserServiceUserService
UserUser
1.31.3
OAuthControllerOAuthController
RandomServiceRandomService
UserSupportUserSupportPointPoint
DataControllerDataController UserControllerUserController AuthControllerAuthController
DataServiceDataService UserServiceUserService
UserUser
OAuthControllerOAuthController
RandomServiceRandomService
UserSupportUserSupportPointPoint
DataServiceDataService
DataServiceDataService
DataServiceDataService MehServ iceMehServ iceBlahServiceBlahServiceDataServiceDataService GahServiceGahService
DoWorkServiceDoWorkService
VIEWSVIEWS
![Page 21: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/21.jpg)
My Green Field ProjectMy Green Field Project
Web/ MVC LayerWeb/ MVC Layer
Service LayerService Layer
Data LayerData Layer
DataControllerDataController UserControllerUserController AuthControllerAuthController
DataServiceDataService UserServiceUserService
UserUser
1.31.3
OAuthControllerOAuthController
RandomServiceRandomService
UserSupportUserSupportPointPoint
DataControllerDataController UserControllerUserController AuthControllerAuthController
DataServiceDataService UserServiceUserService
UserUser
OAuthControllerOAuthController
RandomServiceRandomService
UserSupportUserSupportPointPoint
DataServiceDataService
DataServiceDataService
DataServiceDataService MehServ iceMehServ iceBlahServiceBlahServiceDataServiceDataService GahServiceGahService
DoWorkServiceDoWorkService
VIEWSVIEWS
![Page 22: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/22.jpg)
Issues ..Issues ..
![Page 23: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/23.jpg)
Issues ..
Coupling between tiers
Issues ..
Coupling between tiers
![Page 24: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/24.jpg)
Issues ..
Coupling between tiers
Service Spaghetti
Issues ..
Coupling between tiers
Service Spaghetti
![Page 25: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/25.jpg)
Issues ..
Coupling between tiers
Service Spaghetti
User exposed to data model
Issues ..
Coupling between tiers
Service Spaghetti
User exposed to data model
![Page 26: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/26.jpg)
![Page 27: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/27.jpg)
ArchitectureArchitecture
![Page 28: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/28.jpg)
ArchitectureData CentricArchitectureData Centric
![Page 29: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/29.jpg)
ArchitectureData Centric
N-Tier
ArchitectureData Centric
N-Tier
![Page 30: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/30.jpg)
What is Architecture?
What is Architecture?
![Page 31: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/31.jpg)
ArchitectureIs PhilosophyArchitecture
Is Philosophy
![Page 32: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/32.jpg)
What is yourPhilosophy?
![Page 33: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/33.jpg)
Perfection
![Page 34: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/34.jpg)
and How It Ruined the World
Perfection
![Page 35: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/35.jpg)
Plato'sTheory of
Ideal Forms
Plato'sTheory of
Ideal Forms
![Page 36: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/36.jpg)
![Page 37: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/37.jpg)
![Page 38: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/38.jpg)
Aristotlean CategoriesAristotlean Categories
![Page 39: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/39.jpg)
Where did this lead?Where did this lead?
![Page 40: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/40.jpg)
![Page 41: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/41.jpg)
TODO, Petra
TODO, Petra
![Page 42: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/42.jpg)
UtopiaUtopia
![Page 43: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/43.jpg)
Waterfall!Waterfall!
![Page 44: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/44.jpg)
Pure Functional
Programming
Pure Functional
Programming
![Page 45: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/45.jpg)
SOA?SOA?
![Page 46: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/46.jpg)
That's awfulThat's awful
![Page 47: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/47.jpg)
"le mieux est l'ennemi du bien"
"le mieux est l'ennemi du bien"
- Voltaire- Voltaire
![Page 48: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/48.jpg)
- Voltaire- Voltaire
"the perfect is the enemy of the good""the perfect is the
enemy of the good"
![Page 49: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/49.jpg)
Back In
Time
Back In
Time
![Page 50: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/50.jpg)
![Page 51: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/51.jpg)
No man ever steps in the same river twice
No man ever steps in the same river twice
- Heraclitus (a long time ago)
- Heraclitus (a long time ago)
![Page 52: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/52.jpg)
![Page 53: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/53.jpg)
![Page 54: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/54.jpg)
Perfection is a liePerfection is a lie
![Page 55: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/55.jpg)
Change is the only Truth
Change is the only Truth
![Page 56: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/56.jpg)
The StoicsThe Stoics
![Page 57: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/57.jpg)
The StoicsThe Stoics
![Page 58: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/58.jpg)
Stoicism for DevelopersStoicism for Developers
![Page 59: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/59.jpg)
sick and yet happysick and yet happy
Stoicism for DevelopersStoicism for Developers
![Page 60: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/60.jpg)
sick and yet happyin peril and yet happy sick and yet happyin peril and yet happy
Stoicism for DevelopersStoicism for Developers
![Page 61: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/61.jpg)
sick and yet happyin peril and yet happy dying and yet happy
sick and yet happyin peril and yet happy dying and yet happy
Stoicism for DevelopersStoicism for Developers
![Page 62: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/62.jpg)
sick and yet happyin peril and yet happy dying and yet happyin exile and happy
sick and yet happyin peril and yet happy dying and yet happyin exile and happy
Stoicism for DevelopersStoicism for Developers
![Page 63: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/63.jpg)
sick and yet happyin peril and yet happy dying and yet happyin exile and happyin disgrace and happy
sick and yet happyin peril and yet happy dying and yet happyin exile and happyin disgrace and happy
Stoicism for DevelopersStoicism for Developers
![Page 64: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/64.jpg)
How can this be
applied?
How can this be
applied?
![Page 65: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/65.jpg)
PragmatismPragmatism
![Page 66: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/66.jpg)
Reject DogmaReject Dogma
![Page 67: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/67.jpg)
Gather ProofGather Proof
![Page 68: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/68.jpg)
Change is Real
Change is Real
![Page 69: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/69.jpg)
David, show them some code
David, show them some code
![Page 70: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/70.jpg)
A Business ProcessA Business Process
![Page 71: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/71.jpg)
A Business ProcessA Business Process
(Workflow)(Workflow)
![Page 72: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/72.jpg)
A Business ProcessA Business Process
(Workflow)(Workflow)
Create DocumentCreate Document
![Page 73: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/73.jpg)
A Business ProcessA Business Process
(Workflow)(Workflow)
Create DocumentCreate DocumentCreate DocumentCreate Document Review DocumentReview Document
![Page 74: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/74.jpg)
A Business ProcessA Business Process
(Workflow)(Workflow)
Create DocumentCreate DocumentCreate DocumentCreate Document Review DocumentReview Document Approve DocumentApprove Document
![Page 75: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/75.jpg)
A Business ProcessA Business Process
(Workflow)(Workflow)
Create DocumentCreate DocumentCreate DocumentCreate Document Review DocumentReview Document Approve DocumentApprove Document
RejectReject
![Page 76: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/76.jpg)
A Business ProcessA Business Process
(Workflow)(Workflow)
Create DocumentCreate DocumentCreate DocumentCreate Document Review DocumentReview Document Approve DocumentApprove Document
RejectReject Insert into SystemInsert into System
![Page 77: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/77.jpg)
The ChallengesThe Challenges
![Page 78: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/78.jpg)
●The DBA likes to change things●The DBA likes to change things
The ChallengesThe Challenges
![Page 79: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/79.jpg)
●The DBA likes to change things
●The UI will need updating every week.
●The DBA likes to change things
●The UI will need updating every week.
The ChallengesThe Challenges
![Page 80: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/80.jpg)
●The DBA likes to change things
●The UI will need updating every week.
●The Document system gets a new major version every 2 months.
●The DBA likes to change things
●The UI will need updating every week.
●The Document system gets a new major version every 2 months.
The ChallengesThe Challenges
![Page 81: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/81.jpg)
David, show them some code
David, show them some code
![Page 82: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/82.jpg)
The 'Life Preserver'
Approach
The 'Life Preserver'
Approach
![Page 83: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/83.jpg)
![Page 84: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/84.jpg)
Core Domain
Application PoliciesBusiness Rules
Core Domain
Application PoliciesBusiness Rules
![Page 85: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/85.jpg)
DocumentWorkflowDocumentWorkflow
![Page 86: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/86.jpg)
DatabaseDatabaseDocumentWorkflowDocumentWorkflow
![Page 87: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/87.jpg)
DatabaseDatabase
DocumentSystemIntegration
DocumentSystemIntegration
DocumentWorkflowDocumentWorkflow
![Page 88: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/88.jpg)
RESTREST
DatabaseDatabase
DocumentSystemIntegration
DocumentSystemIntegration
DocumentWorkflowDocumentWorkflow
![Page 89: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/89.jpg)
RESTRESTUIUI
DatabaseDatabase
DocumentSystemIntegration
DocumentSystemIntegration
DocumentWorkflowDocumentWorkflow
![Page 90: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/90.jpg)
Events!Events!
![Page 91: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/91.jpg)
What areEvents?What areEvents?
![Page 92: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/92.jpg)
Asynchronous?Asynchronous?
![Page 93: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/93.jpg)
CommunicationCommunication
![Page 94: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/94.jpg)
Imperativeto
Declarative
Imperativeto
Declarative
![Page 95: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/95.jpg)
Give me MilkGive me Milk
OKOK
![Page 96: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/96.jpg)
I used all the milkI used all the milk
I'll get someI'll get some
![Page 97: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/97.jpg)
Point of Decision moves
Caller ==> Callee
Point of Decision moves
Caller ==> Callee
![Page 98: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/98.jpg)
David, show them some code
David, show them some code
![Page 99: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/99.jpg)
we will use:we will use:
![Page 100: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/100.jpg)
we will use:
Communication Centric
we will use:
Communication Centric
![Page 101: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/101.jpg)
we will use:
Communication CentricDomain Based
we will use:
Communication CentricDomain Based
![Page 102: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/102.jpg)
we will use:
Communication CentricDomain Based
Architecture
we will use:
Communication CentricDomain Based
Architecture
![Page 103: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/103.jpg)
we will use:
No NewFrameworks
we will use:
No NewFrameworks
![Page 104: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/104.jpg)
David, show them some code
David, show them some code
![Page 105: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/105.jpg)
https://github.com/daviddawson/philosophical-architecturehttps://github.com/daviddawson/philosophical-architecture
David, show them some code
David, show them some code
![Page 106: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/106.jpg)
What Next?What Next?
![Page 107: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/107.jpg)
RESTRESTUIUI
DatabaseDatabase
DocumentSystemIntegration
DocumentSystemIntegration
DocumentWorkflowDocumentWorkflow
![Page 108: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/108.jpg)
Split DomainsInto Plugins
Split DomainsInto Plugins
![Page 109: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/109.jpg)
Split DomainsInto
Microservices
Split DomainsInto
Microservices
![Page 110: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/110.jpg)
Blatant PromoBlatant Promo
Trouble changing your software?
Trouble changing your software?
![Page 111: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/111.jpg)
Blatant PromoBlatant Promo
https://skillsmatter.com/conferences/6312-muconhttps://skillsmatter.com/conferences/6312-mucon
µCon: The Microservices Conference27th, 28th November, LondonµCon: The Microservices Conference27th, 28th November, London
![Page 112: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/112.jpg)
Blatant PromoBlatant Promo
Simplicity in Software Workshop, Friday 19th July
Simplicity in Software Workshop, Friday 19th July
![Page 113: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/113.jpg)
Questions?Questions?
![Page 114: Philosophical Architecture in Grails](https://reader033.fdocuments.in/reader033/viewer/2022060121/559444831a28ab06308b47da/html5/thumbnails/114.jpg)
Thank you!Thank you!
@davidthecoder@davidthecoder