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
710
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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
250
Responsive E-Mails
aimeos
0
700
gigacommerce
aimeos
0
3.2k
High performance e-commerce in Laravel
aimeos
0
940
E-Commerce in TYPO3 mit Aimeos (Deutsch)
aimeos
0
470
Aimeos - high performance e-commerce in TYPO3
aimeos
0
330
Aimeos e-commerce components
aimeos
1
220
E-Commerce in TYPO3 - Reloaded
aimeos
0
330
Other Decks in Programming
See All in Programming
生成AI導入の「期待外れ」を乗り越える ー 開発フロー改革が目指す、真の組織変革
starfish719
0
2.2k
Foundation Models frameworkで画像分析
ryodeveloper
1
140
Haskell/Servantを通してWebミドルウェアを捉え直す
pizzacat83
1
610
共通化で考えるべきは、実装より公開する型だった
codeegg
0
280
Welcome to the "Parametricity" 🏙️ − Generic だけど Specific な世界 −
guvalif
PRO
1
180
変わらないものが、変わるものを決める — 意図駆動開発 × イベントソーシング × イミュータブル | What Doesn't Change Decides What Can — IDD × Event Sourcing × Immutability
tomohisa
0
280
AWS CDK を「作」ってみた 〜フルスクラッチで見えた CDK の裏側〜 / aws-cdk-from-scratch
gotok365
3
2.4k
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
390
Claude Opus 4.6以後の受託開発エンジニアの変化(Claude Code開発ノウハウ大公開スペシャルbyクラスメソッド)
iidatakuma
1
850
霧の中の代数的エフェクト
funnyycat
1
430
数百円から始めるRuby電子工作
tarosay
0
100
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
200
Featured
See All Featured
Accessibility Awareness
sabderemane
1
160
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
880
Joys of Absence: A Defence of Solitary Play
codingconduct
1
420
Marketing to machines
jonoalderson
1
5.6k
Deep Space Network (abreviated)
tonyrice
0
230
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.7k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
450
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1k
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.8k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
620
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2k
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