Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Scaling Vendure with Nx
Search
Miroslav Jonaš
December 09, 2023
Programming
0
46
Scaling Vendure with Nx
Miroslav Jonaš
December 09, 2023
Tweet
Share
More Decks by Miroslav Jonaš
See All by Miroslav Jonaš
Don't let compilation set the length of your Glühwein break
meeroslav
0
45
Vanquishing deployment dragons with Nx wizardry
meeroslav
0
120
Don't let compilation set the length of your coffee break
meeroslav
0
44
The other JavaScript performance (no one is talking about)
meeroslav
0
180
Age of monorepos (NgDe)
meeroslav
0
120
Age of monorepos (Armada JS 2022)
meeroslav
0
170
The Age of monorepos (JSNation)
meeroslav
1
200
Nx - The Obvious Choice
meeroslav
0
180
The Age of monorepos
meeroslav
0
190
Other Decks in Programming
See All in Programming
Web技術を駆使してユーザーの画面を「録画」する
yukukotani
13
6.5k
rails_girls_is_my_gate_to_join_the_ruby_commuinty
maimux2x
0
190
Method Swizzlingを行うライブラリにおけるマルチモジュール設計
yoshikma
0
110
ECMAScript、Web標準の型はどう管理されているか / How ECMAScript and Web standards types are maintained
petamoriken
3
390
Why Prism?
kddnewton
4
1.7k
Prolog入門
qnighy
4
990
Understand the mechanism! Let's do screenshots tests of Compose Previews with various variations / 仕組みから理解する!Composeプレビューを様々なバリエーションでスクリーンショットテストしよう
sumio
3
480
マイグレーションコード自作して File-Based Routing に自動移行!! ~250 ページの歴史的経緯を添えて~
cut0
1
260
Android開発以外のAndroid開発経験の活かしどころ
konifar
2
700
実践 Advanced CallKit 〜快適な通話の実現に向けて〜
mot_techtalk
3
120
仮想ファイルシステムを導入して開発環境のストレージ課題を解消する
segadevtech
2
500
全部見せます! クラシルリワードのSwiftTesting移行プロジェクト
uetyo
0
190
Featured
See All Featured
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
8.9k
Infographics Made Easy
chrislema
239
18k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
663
120k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
131
32k
A Philosophy of Restraint
colly
202
16k
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.4k
The Power of CSS Pseudo Elements
geoffreycrofte
71
5.2k
Producing Creativity
orderedlist
PRO
340
39k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
123
18k
Into the Great Unknown - MozCon
thekraken
29
1.4k
Product Roadmaps are Hard
iamctodd
PRO
48
10k
Ruby is Unlike a Banana
tanoku
96
11k
Transcript
Vendure Developer Day / December 9th 2023 Miroslav Jonaš /
@meeroslav Scaling with
None
Final boss
Final boss of web development
Final boss of web development
Final boss of web development
Small webshop Large enterprise corporation Day 1 After 1 year
None
None
Small webshop Large enterprise corporation Day 1 After 1 year
Small webshop Large enterprise corporation Day 1 After 1 year
Miroslav Jonaš @meeroslav
Storefront (framework X) Every large application* UI Components
/ Design system Vendure server Plugin 1 Plugin 2 Plugin 3 Plugin 4 Plugin 5 Plugin 6 Plugin 7
Storefront (framework X) Vendure server Every large application* UI
Components / Design system Plugin 1 Plugin 2 Plugin 3 Plugin 4 Plugin 5 Plugin 6 Plugin 7 Admin UI Mobile App Utility v1 v3 v2_beta v1.0.1 ~2.15.0 > 3.0.0
None
Collocate Storefront (framework X) Vendure server UI Components
/ Design system Plugin 1 Plugin 2 Plugin 3 Plugin 4 Plugin 5 Plugin 6 Plugin 7 Admin UI Mobile App Utility
Code sharing Storefront Admin UI Auth
Affected graph admin store api
Affected graph + deploy admin store api
admin store api Deploy every second week Deploy on Tuesdays
Deploy on every change Affected graph + deploy
Workspace analysis
Task orchestration Test Build Lint Build Lint Test Build Lint
Test
Caching Never { build, test, lint… } same code twice
{ build, test, lint,... } Nx Local cache { build, test, lint,... } Nx Local cache CI provider
Distributed task execution Main agent
Distributed task execution Idle time Idle time
Distributed task execution
Distributed task execution Instant replay from cache
Distributed task execution
Distributed task execution
Code constraints
Code constraints store checkout sales coupons core shared admin
But I have just a small shop…
> npx @vendure/create my-store
Imagine… > npx create-nx-workspace my-store --preset=@vendure/nx
But then… > nx g @vendure/nx:storefront my-web --framework=qwik
Or… > nx g @vendure/nx:plugin my-plugin
How about… > nx g @vendure/nx:convert-database my-store -d mssql
No more updateophobia… > nx g migrate @vendure/nx@latest
Full IDE support
2024
Ask not what Vendure can do for you - ask
what you can do for Vendure
Vendure Developer Day / December 9th 2023 Miroslav Jonaš /
@meeroslav Thank you! +