Code Talks 24 - The Quest for Immortality

FlorianRappl 28 views 33 slides Sep 20, 2024
Slide 1
Slide 1 of 33
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33

About This Presentation

In the heart of developers software is a throw-away product - quickly iterate over a solution, improve it over time, and if there is a better solution: start from scratch again. However, that conflicts with business goals - building something that lasts essentially forever; at least until its phased...


Slide Content

linkedin.com/in/florian-rappl/
2024-09-20
Dr. Florian Rappl

linkedin.com/in/florian-rappl/
Solution Architect at smapiot
IoT / Embedded Computing
Digital Transformation
Distributed Web Applications
Open-Source Enthusiast
Microsoft MVP Development Tools
Projects for .NET and JS
Articles for various blogs and magazines

linkedin.com/in/florian-rappl/

linkedin.com/in/florian-rappl/
Graphic by Christiaan Verwijs

linkedin.com/in/florian-rappl/
Graphic by Egon Wuchner

linkedin.com/in/florian-rappl/

linkedin.com/in/florian-rappl/

linkedin.com/in/florian-rappl/
Decoupling?

linkedin.com/in/florian-rappl/
M1 M2
M3 M4

linkedin.com/in/florian-rappl/
M1 M2
M3 M4

linkedin.com/in/florian-rappl/
M1 M2
M3 M4
SB

linkedin.com/in/florian-rappl/
Reduce
Cycles!

linkedin.com/in/florian-rappl/
Backend AreaBackend
Potentially exposing APIs
Access to DBs and other systems
Not involved in user experience
Single technology
Frontend Area
Frontend
Responsible for the user experience
Generates HTML
Delivers other web assets such as CSS
Receive data from backend area

linkedin.com/in/florian-rappl/
Service A
Microservices
Scoped around business capabilities
Developed by autonomous teams
Own development & deployment lifecycle
Loosely coupled
Technology independent
Single Frontend Solution
Frontend
Monolithic architecture
Integrated and consistent user experience
Developed by one central team
Larger deployment releases
Service BService C
Service XService Y

linkedin.com/in/florian-rappl/
Service A
Distributed Web Application
Service BService C
Frontend
A
Frontend
B
Frontend
C
Service D
Frontend
D
Frontend
Micro Frontend
Backend
Microservice

linkedin.com/in/florian-rappl/
Best of both worlds for a modular distributed web application
Microservices aspectsAspects of a monolithic approach
Business capabilities
as modules
Development by
independent teams
Shared architecture
foundation
Loose coupling with
dynamic loading
Consistent
UI & UX

linkedin.com/in/florian-rappl/
Distributed Web Application
Frontend
A
Frontend
B
Frontend
C
Frontend
D
Service A
Modular Distributed Web Application
Service BService C
Module A
Shared LibrariesPattern Library
Module BModule C
Core and Common Capabilities
Service D
Module D
Frontend
App Shell Component
Business Capability Module
Backend
Microservice

linkedin.com/in/florian-rappl/
Use DDD!

linkedin.com/in/florian-rappl/
Service AService BService C
Single Frontend Solution (Monolith)
Service D
FrontendDevelopment Team
Backend ServiceDevelopment Teams
Frontend
Backend

linkedin.com/in/florian-rappl/
Service AService BService C
Module AModule BModule C
Application Shell
Service D
Module D
FrontendDevelopment Team
FullstackDevelopment Teams
Frontend
Backend

linkedin.com/in/florian-rappl/
V1
Dev V1
App Shell Development
</>
Module Development
</>
</>
</>
V1
V1
Version 2
V2V3
V2
V4
V3V4
V2V3
Prod V1
Module A
Module B
Module C

linkedin.com/in/florian-rappl/
Example

linkedin.com/in/florian-rappl/

linkedin.com/in/florian-rappl/
“Inspire”“Users”“Movies”
BrowseFavoritesSearchProfilePlayerPreview

linkedin.com/in/florian-rappl/

linkedin.com/in/florian-rappl/
FavoritesPreview

linkedin.com/in/florian-rappl/
Browse
Favorites
Search
Profile
Preview

linkedin.com/in/florian-rappl/

linkedin.com/in/florian-rappl/
Case Study

linkedin.com/in/florian-rappl/

linkedin.com/in/florian-rappl/

linkedin.com/in/florian-rappl/

linkedin.com/in/florian-rappl/
smapiot
smapiot.com
github.com/smapiot
Florian Rappl
[email protected]
@FlorianRappl
Piral
piral.io
docs.piral.io
github.com/piral-samples