Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up
for free
Functional Design for Reference Architectures
Jeferson David Ossa
March 19, 2018
Technology
2
210
Functional Design for Reference Architectures
https://nescala.io/2018/#schedule
https://scala.io/2018/talks.html#/#TOX-4454
Jeferson David Ossa
March 19, 2018
Tweet
Share
More Decks by Jeferson David Ossa
See All by Jeferson David Ossa
jedossa
0
63
jedossa
0
430
jedossa
0
55
jedossa
0
360
Other Decks in Technology
See All in Technology
lmi
2
880
eller86
0
120
hagyyyy
0
160
line_developers
PRO
0
170
tnmt
2
150
ayanadesu
0
350
manuelmeyer
0
130
yuzutas0
8
2.9k
subroh0508
4
220
gobeyond20xx
0
170
mamix1116
3
400
viva_tweet_x
1
390
Featured
See All Featured
3n
163
22k
dougneiner
55
5.4k
orderedlist
PRO
328
36k
kneath
295
39k
lauravandoore
11
1.5k
zenorocha
296
40k
ammeep
656
54k
kastner
54
1.9k
morganepeng
93
14k
mongodb
23
3.9k
edds
56
9.4k
wjessup
339
16k
Transcript
Functional Design for Reference Architecture An experience report
About me Jeferson David Ossa @unyagami on twitter FP Professor
Developer at Seven4n
Context • Engineers with Java background (mostly) • Monolithic architecture
• Emerging market • Increasing business complexity • Need for speed • New needs, new approaches
Rediscovering FP • Reducing complexity ◦ Data in => Data
out ◦ Parameterize all things ◦ Type-safe ◦ Immutability • Growing complexity ◦ Apomorphisms ◦ Dynamorphisms ◦ Chronomorphisms ◦ Zygohistomorphic prepromorphisms
Object-Oriented Meets Functional FP Functions Functions Functions Functions Functions in
the small, objects in the large OO Single responsibility Open/Close Dependency inversion Factory pattern etc.
Challenges • Continue delivering business value • Onboarding new team
members • Lack of experts on FP • Stop doing “better Java” • Knowledge management
Our approach • Fine-grained control of decisions • Code/Tests as
documentation • An easy to evolve artifact • Everyone in the team can contribute • A framework was not enough
Reference architecture “A reference architecture is a set of documents
to which an interested party can refer to for best practices, common standards, specifications and patterns” - DDD - Microservices - CQRS - ADT - DSL/Tagless - Onion/Clean/Hexagonal architecture
Service View µ-service Ports/Adapters Domain Services Infrastructure ACL
Let's check out some code warning: boilerplate code ahead
Final thoughts • It is complex to get simple •
Abstractions have complexity costs • Keep studying • Focus on people • Measures of success
Thank you for listening! s4n.co