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
Micro services as architectural concept
Search
Aimeos
May 09, 2016
Programming
700
0
Share
Micro services as architectural concept
What are micro services, some history and how we use it in Aimeos
Aimeos
May 09, 2016
More Decks by Aimeos
See All by Aimeos
PHP Map
aimeos
1
160
GraphQL vs. JSON:API
aimeos
1
240
Responsive E-Mails
aimeos
0
690
gigacommerce
aimeos
0
3.2k
High performance e-commerce in Laravel
aimeos
0
930
E-Commerce in TYPO3 mit Aimeos (Deutsch)
aimeos
0
470
Aimeos - high performance e-commerce in TYPO3
aimeos
0
320
Aimeos e-commerce components
aimeos
1
210
E-Commerce in TYPO3 - Reloaded
aimeos
0
320
Other Decks in Programming
See All in Programming
ソフトウェア設計の結合バランス #phperkaigi
kajitack
0
490
なぜあなたのコードには「コシ」がないのか?〜AI時代に問う、最後まで美味しい設計と戦略〜 #phpconkagawa / phpconkagawa2026
shogogg
0
120
CursorとClaudeCodeとCodexとOpenCodeを実際に比較してみた
terisuke
1
520
〜バイブコーディングを超えて〜 チームで実験し続けたAI駆動開発
tigertora7571
0
190
「Linuxサーバー構築標準教科書」を読んでみた #ツナギメオフライン.7
akase244
0
1.4k
いつか誰かが、と思っていた フロントエンド刷新5年間の実践知
kiichisugihara
1
250
Spec Driven Development | AI Summit Vilnius
danielsogl
PRO
1
140
ソースコード→AST→オペコード、の旅を覗いてみる
o0h
PRO
1
120
PicoRuby for IoT: Connecting to the Cloud with MQTT
yuuu
2
750
The Less-Told Story of Socket Timeouts
coe401_
3
940
Kubernetesを使わない環境にもCloud Nativeなデプロイを実現する / Enabling Cloud Native deployments without the complexity of Kubernetes
linyows
1
140
JAWS-UG横浜 #100 祝・第100回スペシャルAWS は VPC レスの時代へ
maroon1st
0
210
Featured
See All Featured
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
65
54k
How to Talk to Developers About Accessibility
jct
2
190
Bash Introduction
62gerente
615
210k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
180
First, design no harm
axbom
PRO
2
1.2k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
0
300
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
320
Site-Speed That Sticks
csswizardry
13
1.2k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
110
The agentic SEO stack - context over prompts
schlessera
0
770
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
4 Signs Your Business is Dying
shpigford
187
22k
Transcript
Micro services as architectural concept
Previous applications architectures
“Spaghetti”
Function 2 Function 3 Function ... Application Function 5 Function
4 Function 1
Objekt oriented
Object 1 - Data - Methods Object 1 - Data
- Methods Object ... - Data - Methods Application
Layer model
Layer 1.3 Layer 1.2 Layer 1.1 Layer 2.2 Layer 2.1
Application
Similarity: Deployment monoliths
Micro services
Single, independent applications
Layer 2.2 Layer 2.1 Layer 1.3 Layer 1.2 Layer 1.1
Application 1 Application 2
Requirement: Domain driven design
Layer 1.3 Layer 1.2 Layer 1.1 Layer 2.2 Layer 2.1
Layer 3.4 Layer 3.4 Layer 3.1 Layer 3.2 Domain 1 Domain 3 Domain 3
Micro services in “real life”
Domäne 3 Domain 1 Domain 2 Domain 5 Domain 4
Domain 3 Bounded contexts
Interfaces and data exchange
Domain 1 Domain 5 Format? Versioning? Compatibility? Fault tolerance? Number
of calls? Common data model?
Shared kernel
Domain 1 Data model Domain 3
Best case • Work independently from each other • Extendable
by different teams • Exchangeable • Scalable
Worst case • Erros are even harder to find •
Increased total complexity • Performance suffers • Cascading outages
Aimeos
E-Commerce components for integration into applications
None
Layer model
Config Data access JQAdm JQuery Frontend client List ... Basket
Admin controller Frontend controller PHP I18n Config Database View Logger Session Bandend application Frontend application ExtAdm JsonAdm ExtJS JSON API
Data domains
Product Catalog Index Order ... 16 Datendomänen Data access
Separation into stacks for micro services
Config List Client ... Client Cntl ... Cntl Product ...
Order ... Basket By domain
Frontend client List ... Basket Frontend controller Data access By
use case Config JQuery JQAdm ExtAdm JsonAdm Cntl Cntl Cntl Data Data Data ExtJS JSON API
Frontend client List ... Basket Frontend controller Data access With
shared kernel JQuery JQAdm ExtAdm JsonAdm Admin Controller ExtJS JSON API
As Composer packages • Aimeos core (shared kernel) • HTML
client (frontend) • JQAdm (JQuery admin) • ExtAdm (ExtJS admin) • JsonAdm (JSON admin API) • Jobs (cronjob controller)
Open questions
Further separation? Frontend? Shared admin controller?
Best size for micro services?
Aimeos aimeos.org Twitter: @aimeos facebook.com/Aimeos