SlideShare a Scribd company logo
1 of 17
Continuous Platformization
JSChannel BLR 2014
Amod Malviya
CP
• Is not about JS techniques
• Is about design & engineering patterns
– Surprisingly less talked about
– Most common reason for system failures/rewrites
– Particularly important in the age of dynamic
languages
• Elements of DDD, Agile & SoA
• Helps address short term vs long term
• WIP – help make it better
Systems
System Elements
Infra
Stories
Domain Semantics
Entities
Entities
• The “nouns” of your systems
• Have an “identity” and a “lifecycle”
• The code “understands” them
• Little code
– But most pervasive across the code
• Usually not an issue in system design
Stories
• The “use cases”
• The “workflows” that your users go through
• Control paths triggered through biz events
• Highest volume of code
• The most frequently changed code
Domain Semantics
• Capabilities that enable many stories
• Behavior, Policy et al.
• Augmented information about entities
• Externalize control
– Provide a higher abstraction to work with
• Retain Semantics
Misconceptions
• Middleware == Domain Semantics
• Abstraction == Domain Semantics
• Externalizing control == Domain Semantics
System Elements
Infra
Stories
Domain Semantics
Entities
Solution
Platforms vs Solutions
• Solutions
– Start with stories
– Bypass semantics
– Connect stories directly with entities
– Rigid, difficult to maintain beasts
• Platforms
– Start with domain constructs
– Have guaranteed semantics
– More robust (e.g. can have ACLs)
– Externalize control
– Stories are easier to read
– Enable interesting patterns on stories
How to build Platforms
• Think a lot about base constructs (entities &
semantics)
• Identify & create semantics to the extent
possible
• Servicify the platform
– Forces separation of platform & stories
– Forces contracts between semantics & stories
• Build stories on top of this platform
– Instead of building it within the platform
A risk…
• Deeper thinking can sometimes lead to
– Slower speed of execution (Bad)
– Complete stall (Worse)
– Over engineering ! (Worst)
• Similarity with short term vs long term?
– Short term optimizes for time to market
– Long term optimizes for maintainability,
extensibility & scalability
System Elements
Infra
Stories
Domain Semantics
Entities
Make it continuous
• Use an iterative model
– Move step by step with sprints
– Every sprint leads to a few steps closer to ideal
• Optimize for contracts – lock those in early!
– Changes go through a much more rigorous review
• Prioritize for time to delivery
– Within the contract, hack away to glory
• Cap out the “deep thinking” time penalty:
15% per sprint works for me
“Continuous” - For legacy systems
• Two options:
– Seaming
– Alternatively (not recommended):
• Build platform in parallel to existing system
Parting Thoughts
• Build Platforms, not Solutions!
• Cautionary Note
– There’s no one framework to rule them all
– More a guiding principle than a bible
• CP is an evolving concept
– Help make it better
• Recommended reads
– Eric Evans: Domain Driven Design
– Michael Feathers: Working Effectively With Legacy
Code
Questions?
@amodm
amod@flipkart.com

More Related Content

Similar to Continuous Platformization

The economies of scaling software - Abdel Remani
The economies of scaling software - Abdel RemaniThe economies of scaling software - Abdel Remani
The economies of scaling software - Abdel Remani
jaxconf
 
The Economies of Scaling Software
The Economies of Scaling SoftwareThe Economies of Scaling Software
The Economies of Scaling Software
Abdelmonaim Remani
 
Using AWS to Build a Scalable Big Data Management & Processing Service (BDT40...
Using AWS to Build a Scalable Big Data Management & Processing Service (BDT40...Using AWS to Build a Scalable Big Data Management & Processing Service (BDT40...
Using AWS to Build a Scalable Big Data Management & Processing Service (BDT40...
Amazon Web Services
 
Model-driven and low-code development for event-based systems | Bobby Calderw...
Model-driven and low-code development for event-based systems | Bobby Calderw...Model-driven and low-code development for event-based systems | Bobby Calderw...
Model-driven and low-code development for event-based systems | Bobby Calderw...
HostedbyConfluent
 
Docker-N-Beyond
Docker-N-BeyondDocker-N-Beyond
Docker-N-Beyond
santosh007
 

Similar to Continuous Platformization (20)

Architecting systems for continuous delivery
Architecting systems for continuous deliveryArchitecting systems for continuous delivery
Architecting systems for continuous delivery
 
Guide to Destroying Codebases The Demise of Clever Code
Guide to Destroying Codebases   The Demise of Clever CodeGuide to Destroying Codebases   The Demise of Clever Code
Guide to Destroying Codebases The Demise of Clever Code
 
The economies of scaling software - Abdel Remani
The economies of scaling software - Abdel RemaniThe economies of scaling software - Abdel Remani
The economies of scaling software - Abdel Remani
 
Designing and Implementing Information Systems with Event Modeling, Bobby Cal...
Designing and Implementing Information Systems with Event Modeling, Bobby Cal...Designing and Implementing Information Systems with Event Modeling, Bobby Cal...
Designing and Implementing Information Systems with Event Modeling, Bobby Cal...
 
Scaling Systems: Architectures that grow
Scaling Systems: Architectures that growScaling Systems: Architectures that grow
Scaling Systems: Architectures that grow
 
The Economies of Scaling Software
The Economies of Scaling SoftwareThe Economies of Scaling Software
The Economies of Scaling Software
 
Microservices Gone Wrong!
Microservices Gone Wrong!Microservices Gone Wrong!
Microservices Gone Wrong!
 
Enterprise Software Development Patterns
Enterprise Software Development PatternsEnterprise Software Development Patterns
Enterprise Software Development Patterns
 
Zebras all the way down: The engineering challenges of the data path
Zebras all the way down: The engineering challenges of the data pathZebras all the way down: The engineering challenges of the data path
Zebras all the way down: The engineering challenges of the data path
 
Building Information Systems using Event Modeling (Bobby Calderwood, Evident ...
Building Information Systems using Event Modeling (Bobby Calderwood, Evident ...Building Information Systems using Event Modeling (Bobby Calderwood, Evident ...
Building Information Systems using Event Modeling (Bobby Calderwood, Evident ...
 
Using AWS to Build a Scalable Big Data Management & Processing Service (BDT40...
Using AWS to Build a Scalable Big Data Management & Processing Service (BDT40...Using AWS to Build a Scalable Big Data Management & Processing Service (BDT40...
Using AWS to Build a Scalable Big Data Management & Processing Service (BDT40...
 
Configuration Management is Old and Boring
Configuration Management is Old and BoringConfiguration Management is Old and Boring
Configuration Management is Old and Boring
 
What ya gonna do?
What ya gonna do?What ya gonna do?
What ya gonna do?
 
Using AWS To Build A Scalable Machine Data Analytics Service
Using AWS To Build A Scalable Machine Data Analytics ServiceUsing AWS To Build A Scalable Machine Data Analytics Service
Using AWS To Build A Scalable Machine Data Analytics Service
 
I pushed in production :). Have a nice weekend
I pushed in production :). Have a nice weekendI pushed in production :). Have a nice weekend
I pushed in production :). Have a nice weekend
 
Model-driven and low-code development for event-based systems | Bobby Calderw...
Model-driven and low-code development for event-based systems | Bobby Calderw...Model-driven and low-code development for event-based systems | Bobby Calderw...
Model-driven and low-code development for event-based systems | Bobby Calderw...
 
Patterns of enterprise application architecture
Patterns of enterprise application architecturePatterns of enterprise application architecture
Patterns of enterprise application architecture
 
Blasting Out of the Past with OSGi - Keith McFarlane
Blasting Out of the Past with OSGi - Keith McFarlaneBlasting Out of the Past with OSGi - Keith McFarlane
Blasting Out of the Past with OSGi - Keith McFarlane
 
Docker-N-Beyond
Docker-N-BeyondDocker-N-Beyond
Docker-N-Beyond
 
AWS Customer Presentation - Thomson Reuters - Delivering on the Promise of Di...
AWS Customer Presentation - Thomson Reuters - Delivering on the Promise of Di...AWS Customer Presentation - Thomson Reuters - Delivering on the Promise of Di...
AWS Customer Presentation - Thomson Reuters - Delivering on the Promise of Di...
 

Recently uploaded

VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
dharasingh5698
 
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
dollysharma2066
 
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
dharasingh5698
 
Call Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
notes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.pptnotes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.ppt
MsecMca
 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
ssuser89054b
 

Recently uploaded (20)

ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
 
Employee leave management system project.
Employee leave management system project.Employee leave management system project.
Employee leave management system project.
 
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
 
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
 
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
 
DC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equationDC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equation
 
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced LoadsFEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
 
Call Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
 
notes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.pptnotes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.ppt
 
chapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineeringchapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineering
 
data_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfdata_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdf
 
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
 
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
 
2016EF22_0 solar project report rooftop projects
2016EF22_0 solar project report rooftop projects2016EF22_0 solar project report rooftop projects
2016EF22_0 solar project report rooftop projects
 
Unit 2- Effective stress & Permeability.pdf
Unit 2- Effective stress & Permeability.pdfUnit 2- Effective stress & Permeability.pdf
Unit 2- Effective stress & Permeability.pdf
 
Double Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueDouble Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torque
 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdf
 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 
Thermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptThermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.ppt
 

Continuous Platformization

  • 2. CP • Is not about JS techniques • Is about design & engineering patterns – Surprisingly less talked about – Most common reason for system failures/rewrites – Particularly important in the age of dynamic languages • Elements of DDD, Agile & SoA • Helps address short term vs long term • WIP – help make it better
  • 5. Entities • The “nouns” of your systems • Have an “identity” and a “lifecycle” • The code “understands” them • Little code – But most pervasive across the code • Usually not an issue in system design
  • 6. Stories • The “use cases” • The “workflows” that your users go through • Control paths triggered through biz events • Highest volume of code • The most frequently changed code
  • 7. Domain Semantics • Capabilities that enable many stories • Behavior, Policy et al. • Augmented information about entities • Externalize control – Provide a higher abstraction to work with • Retain Semantics
  • 8. Misconceptions • Middleware == Domain Semantics • Abstraction == Domain Semantics • Externalizing control == Domain Semantics
  • 10. Platforms vs Solutions • Solutions – Start with stories – Bypass semantics – Connect stories directly with entities – Rigid, difficult to maintain beasts • Platforms – Start with domain constructs – Have guaranteed semantics – More robust (e.g. can have ACLs) – Externalize control – Stories are easier to read – Enable interesting patterns on stories
  • 11. How to build Platforms • Think a lot about base constructs (entities & semantics) • Identify & create semantics to the extent possible • Servicify the platform – Forces separation of platform & stories – Forces contracts between semantics & stories • Build stories on top of this platform – Instead of building it within the platform
  • 12. A risk… • Deeper thinking can sometimes lead to – Slower speed of execution (Bad) – Complete stall (Worse) – Over engineering ! (Worst) • Similarity with short term vs long term? – Short term optimizes for time to market – Long term optimizes for maintainability, extensibility & scalability
  • 14. Make it continuous • Use an iterative model – Move step by step with sprints – Every sprint leads to a few steps closer to ideal • Optimize for contracts – lock those in early! – Changes go through a much more rigorous review • Prioritize for time to delivery – Within the contract, hack away to glory • Cap out the “deep thinking” time penalty: 15% per sprint works for me
  • 15. “Continuous” - For legacy systems • Two options: – Seaming – Alternatively (not recommended): • Build platform in parallel to existing system
  • 16. Parting Thoughts • Build Platforms, not Solutions! • Cautionary Note – There’s no one framework to rule them all – More a guiding principle than a bible • CP is an evolving concept – Help make it better • Recommended reads – Eric Evans: Domain Driven Design – Michael Feathers: Working Effectively With Legacy Code

Editor's Notes

  1. Thanks for having me over Nervous about presenting to smart people - am I doing justice to their time? Have not been successful in talking about this in 1 hr in the past
  2. Have been characterizing systems for a long time now. This is a presentation of that study
  3. Need to understand “systems” before platforms
  4. Not an issue in system design – too many frameworks out there to make life easy. OOD is a very well understood domain now (at least entities)
  5. Capability: Interview scheduling Behaviour/Policy: Don’t overblock Augmented: Which companies? Externalize control: e.g. pricing systems – for autonomous pricing, my system needs to be able to “learn” pricing intent
  6. ACL: Anti Corruption Layer Interesting patterns on stories – self mutating stories, stories in database, reflective stories
  7. Servificy – this is where the SOA piece comes into picture
  8. This is where the agile piece comes into picture
  9. Seaming: Michael Feathers Parallel platform: will always slip. Higher risk with longer projects, newer requirements
  10. - Help make it better: 1) Give me data points about when systems succeed/fail, 2) Participate in the thought process