SlideShare a Scribd company logo
Lean Enterprise Architecture
By Shahed Chowdhuri, Sahil Talwar, Doguhan Uluca
A lean, testable enterprise architecture with a modern client stack
Thanks to our Sponsors
for keeping the fires lit
TDD (Test Driven Development)
BDD (Behavior Driven Development)
CI (Continuous Integration)
CD (Continuous Delivery)
Introduction
ASP.NET
MVC
DB
Enterprise
Web
Application
 Looking for Ways to Improve & Modernize
 Motivation behind this design?
 Our desire to do the following:
Data Access Layer Shahed
ChowdhuriUsing Code-First Migrations
Tech Check
ASP
.NET
MVC
Entity
Framework
EF
Code-First
Development
EF
Code-First
Migrations
Are you familiar with…?
Options and Alternatives
Database-
First
(EDMX)
Model-First
(Visual
Designer)
Code-First
(automatic
migrations)
Code-First
(manual
migrations)
What are we trying to solve?
DAL: Agenda
1. Models &
Mapping
2. Connection
Strings
3. Enable
Migrations
4. Update
Database
5. Push Code
+ Migrate
Server DB
6. Process
Workflow
1. Models & Mapping
DBContext
.OnModelCreating()
2. Connection Strings
3. Enable Migrations
migration
code
4. Update Database
model
code
migration
code
+ seed
dev
DB
(sql)
5. Push Code + Migrate Server DB
code push code
CI
code pull code
migrate.exe
Server
DB
6. Process Workflow
dev team DB architects
communication
DB
Code Walkthrough
DAL: Conclusion
Code-First
Migrations
Dev Team
Synchronized
Server
Deployment
Database
Versioning
Continuous
Development
Resources
• EF Code First Migrations on MSDN:
– http://msdn.microsoft.com/en-US/data/jj591621
• Web.config & configSource:
– http://wakeupandcode.com/all-your-database-are-belong-to-us/
• PluralSight EF Migrations video tutorial:
– http://pluralsight.com/training/Courses/TableOfContents/efmigrations
The Domain Sahil Talwar
Simpler is better
Lean Enterprise Architecture
Lean Enterprise Architecture
Lean Enterprise Architecture
Versus…
Heavyweight
Enterprise Architecture
Round
Best Practices
Repositories
Unit of Work
Entity Framework
Domain
IUnitOfWork
IRepository IRepository IRepository
Dal
DbContext
DbSet DbSet DbSet
Web Api
Lean Enterprise Architecture
Round
Web Models
Domain Models
Dal Models
Api Models
Lean Enterprise Architecture
Web
Domain
Dal
Core
(Models)
…Except Api-Domain.
Round
Student
Context
Universities
Departments
Professors Classes
Advisors
Students
Context Per Complex Object
University
Context
Professors Classes Students
Departments Advisors Universities
Single Responsibility: Context Per Object
Universities
Departments
Professors Classes
Advisors
Students
ServiceStoreServiceStore
Service Service Service
Shared
Context
Service Service Service
Solid gold.
Services
Domain 1
Web Api
Domain 2 Domain 4 Domain 5
Dal Models
Domain 3 Domain 6
Lean Enterprise Architecture
Lean Enterprise Architecture
Image Credits
• http://i-cdn.apartmenttherapy.com/uimages/kitchen/2010_05_17-Lasagna.jpg
• http://www.callagold.com/wp-content/uploads/2012/02/gold-plated-porsche-1.jpg
• http://img.diytrade.com/cdimg/1057186/11295732/0/1259756915/Gold_Plating_System.jpg
• http://www.artisticplating.net/images/gold4.jpg
• http://epf.thingml.org/wikis/inf5120/practice.mgmt.scrum.base-
sintef/guidances/roadmaps/resources/ScrumLargeLabelled.png
• http://1.bp.blogspot.com/-H0OeuWi6oXc/UG9BbClJF-
I/AAAAAAAAAqY/6v4hZ5zGGXk/s1600/DDD_TDD_BDD_intersection.png
• http://blogs.jetbrains.com/teamcity/wp-content/uploads/2008/09/teamcity512.png
• http://www.regretfreelife.net/wp-content/uploads/2012/09/lscycle.jpg
• http://automapper.org/img/black_logo.png
• http://4.bp.blogspot.com/-1p7GSp6m_a8/UOrbvzLfwKI/AAAAAAAAAI4/oYULEv-jJWc/s1600/g3211.png
• http://www.clker.com/cliparts/T/G/C/H/K/W/no-sign-hi.png
• http://2.bp.blogspot.com/---z3-
XY_a5M/T2uGslh4fYI/AAAAAAAAADY/PyqTk88n3Qo/s1600/Health+Services+Enterprise+Architecture+v5.3+(
3-20-12).jpg
• http://fc06.deviantart.net/fs71/f/2012/119/e/7/sumo_wrestler_by_maxxparis-d4xytyj.jpg
• http://www.nerdpad.com/wp-content/uploads/2010/04/vs2010_full.jpg
• https://secure.gravatar.com/avatar/cf4c53b37956b009d609caeacb171c40?s=420&d=https://a248.e.akamai.
net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png
• http://nblumhardt.com/wp-content/uploads/2009/12/Autofac-2-Sketch1.png

More Related Content

What's hot (20)

PDF
2014 02 florian-matthes-agile-enterprise-architecture-management
Eric Javier Espino Man
 
PDF
Beyond Scrum and SAFe
Washington DC Scrum User Group
 
PDF
Hans Eckman: 7 Agile and DevOps Insights I Wish I Knew Earlier
Edunomica
 
PPTX
User story estimation with agile architectures
Raffaele Garofalo
 
PDF
B5 Leading Lawfirm Delivers Business Value
Jon Taylor
 
ODP
Applying Agile Values to Enterprise Architecture
Benjamin Scherrey
 
DOCX
ITIL , DevOps and IT4IT
Swati Kumari
 
PDF
Dave Davis: Infrastructure Projects – What Makes then Different and Difficult?
Edunomica
 
PPTX
Continuous Delivery of Agile Architecture
Brad Appleton
 
PDF
DC Business Intelligentsia January Meetup: Agile BI and Data Chaos
Excella
 
PPTX
Does Agile EA Equal Agile Plus EA?
Jason Bloomberg
 
PDF
Complexity requires Empiricism which requires Scrum by Ralph Jocham
Bosnia Agile
 
PDF
SFIA 8 launch slides September 2021
SFIA User Forum
 
PPT
Doing Architecture with Agile Teams IASA UK Summit 2013
Chris F Carroll
 
PPSX
Enhancing clean architecture: 2 n-dimensional layers
Valentin-Tudor Mocanu
 
PPT
Cita iasa certifications
Adams Firdaus
 
PPT
DevOps Requirement practises - the shift to agile
Arthur de Snaijer :)
 
PPTX
An Agile Practice Framework for Scaling Agile Adoption in an Enterprise
Brad Appleton
 
PDF
Scott Ambler: Agile Enterprises are Hybrids, Is Your PMO Ready?
Edunomica
 
PPTX
Trustworthy Transparency and Lean Traceability
Brad Appleton
 
2014 02 florian-matthes-agile-enterprise-architecture-management
Eric Javier Espino Man
 
Beyond Scrum and SAFe
Washington DC Scrum User Group
 
Hans Eckman: 7 Agile and DevOps Insights I Wish I Knew Earlier
Edunomica
 
User story estimation with agile architectures
Raffaele Garofalo
 
B5 Leading Lawfirm Delivers Business Value
Jon Taylor
 
Applying Agile Values to Enterprise Architecture
Benjamin Scherrey
 
ITIL , DevOps and IT4IT
Swati Kumari
 
Dave Davis: Infrastructure Projects – What Makes then Different and Difficult?
Edunomica
 
Continuous Delivery of Agile Architecture
Brad Appleton
 
DC Business Intelligentsia January Meetup: Agile BI and Data Chaos
Excella
 
Does Agile EA Equal Agile Plus EA?
Jason Bloomberg
 
Complexity requires Empiricism which requires Scrum by Ralph Jocham
Bosnia Agile
 
SFIA 8 launch slides September 2021
SFIA User Forum
 
Doing Architecture with Agile Teams IASA UK Summit 2013
Chris F Carroll
 
Enhancing clean architecture: 2 n-dimensional layers
Valentin-Tudor Mocanu
 
Cita iasa certifications
Adams Firdaus
 
DevOps Requirement practises - the shift to agile
Arthur de Snaijer :)
 
An Agile Practice Framework for Scaling Agile Adoption in an Enterprise
Brad Appleton
 
Scott Ambler: Agile Enterprises are Hybrids, Is Your PMO Ready?
Edunomica
 
Trustworthy Transparency and Lean Traceability
Brad Appleton
 

Viewers also liked (20)

PDF
DOES 2016 Sciencing the Crap Out of DevOps
Nicole Forsgren
 
PPTX
MVVM for the Web
Excella
 
PPTX
Next Generation Enterprise Architecture
Richard Veryard
 
PPTX
Agile Architecture: Ideals, History, and a New Hope
Gary Pedretti
 
PDF
Every company is a technology company
Vishal Sharma
 
PDF
2016 metrics-as-culture
Nicole Forsgren
 
PDF
Designing digital transformation v.2.7
Nigel Green
 
PDF
Jeff's journey to a Digital Business
Mendel Koerts
 
PPTX
Foundation for accelerating digital development—Two-speed IT
Apigee | Google Cloud
 
PDF
Go2Group_secrets of high-performing software teams_EAD event_san jose_Doug Bass
Go2Group, Inc.
 
PPTX
WANTED: Seeking Single Agile Knowledge Development Tool-set
Brad Appleton
 
PDF
Is agile adoption losing steam?
Go2Group, Inc.
 
PPTX
DBTA Data Summit : Eliminating the data constraint in Application Development
Kyle Hailey
 
PDF
Faking Hell
Giovanni Asproni
 
PPTX
Continuous delivery made possible
mimmozzo_
 
PPT
Tui Travel - Overcoming the Challenges of Agile Methods
DBmaestro - Database DevOps
 
PDF
How do you deliver your applications to the cloud?
Michael Elder
 
PPTX
In (database) automation we trust
DBmaestro - Database DevOps
 
PPTX
Delphix and DBmaestro
Kyle Hailey
 
PPTX
Jenkins Plugin
DelphixCorp
 
DOES 2016 Sciencing the Crap Out of DevOps
Nicole Forsgren
 
MVVM for the Web
Excella
 
Next Generation Enterprise Architecture
Richard Veryard
 
Agile Architecture: Ideals, History, and a New Hope
Gary Pedretti
 
Every company is a technology company
Vishal Sharma
 
2016 metrics-as-culture
Nicole Forsgren
 
Designing digital transformation v.2.7
Nigel Green
 
Jeff's journey to a Digital Business
Mendel Koerts
 
Foundation for accelerating digital development—Two-speed IT
Apigee | Google Cloud
 
Go2Group_secrets of high-performing software teams_EAD event_san jose_Doug Bass
Go2Group, Inc.
 
WANTED: Seeking Single Agile Knowledge Development Tool-set
Brad Appleton
 
Is agile adoption losing steam?
Go2Group, Inc.
 
DBTA Data Summit : Eliminating the data constraint in Application Development
Kyle Hailey
 
Faking Hell
Giovanni Asproni
 
Continuous delivery made possible
mimmozzo_
 
Tui Travel - Overcoming the Challenges of Agile Methods
DBmaestro - Database DevOps
 
How do you deliver your applications to the cloud?
Michael Elder
 
In (database) automation we trust
DBmaestro - Database DevOps
 
Delphix and DBmaestro
Kyle Hailey
 
Jenkins Plugin
DelphixCorp
 
Ad

Similar to Lean Enterprise Architecture (20)

PDF
Elements of DDD with ASP.NET MVC & Entity Framework Code First
Enea Gabriel
 
PPTX
Entity framework code first
Confiz
 
PPTX
Domain Driven Design(DDD) Presentation
Oğuzhan Soykan
 
PPTX
Entity Framework: Nakov @ BFU Hackhaton 2015
Svetlin Nakov
 
PPTX
Entity Framework Overview
Eyal Vardi
 
PPTX
05 entity framework
glubox
 
PPTX
Entity Framework: Code First and Magic Unicorns
Richie Rump
 
PPTX
dotNet Miami - June 21, 2012: Richie Rump: Entity Framework: Code First and M...
dotNet Miami
 
PPTX
Entity Framework For DBAs
Richie Rump
 
PPTX
A Practical Guide to Domain Driven Design: Presentation Slides
thinkddd
 
DOCX
Learning MVC Part 3 Creating MVC Application with EntityFramework
Akhil Mittal
 
PDF
Entity Framework 6 Recipes 2nd Edition Brian Driscoll
raffygobahc9
 
PPT
Entity Framework 4 In Microsoft Visual Studio 2010
Eric Nelson
 
PDF
From ddd to DDD : My journey from data-driven development to Domain-Driven De...
Thibaud Desodt
 
PPTX
Building nTier Applications with Entity Framework Services (Part 1)
David McCarter
 
PPTX
Microsoft Entity Framework
Mahmoud Tolba
 
PPTX
Building N Tier Applications With Entity Framework Services 2010
David McCarter
 
PPTX
Entity Framework and Domain Driven Design
Julie Lerman
 
PDF
Learn Entity Framework in a day with Code First, Model First and Database First
Jibran Rasheed Khan
 
PPTX
Lets focus on business value
Einar Ingebrigtsen
 
Elements of DDD with ASP.NET MVC & Entity Framework Code First
Enea Gabriel
 
Entity framework code first
Confiz
 
Domain Driven Design(DDD) Presentation
Oğuzhan Soykan
 
Entity Framework: Nakov @ BFU Hackhaton 2015
Svetlin Nakov
 
Entity Framework Overview
Eyal Vardi
 
05 entity framework
glubox
 
Entity Framework: Code First and Magic Unicorns
Richie Rump
 
dotNet Miami - June 21, 2012: Richie Rump: Entity Framework: Code First and M...
dotNet Miami
 
Entity Framework For DBAs
Richie Rump
 
A Practical Guide to Domain Driven Design: Presentation Slides
thinkddd
 
Learning MVC Part 3 Creating MVC Application with EntityFramework
Akhil Mittal
 
Entity Framework 6 Recipes 2nd Edition Brian Driscoll
raffygobahc9
 
Entity Framework 4 In Microsoft Visual Studio 2010
Eric Nelson
 
From ddd to DDD : My journey from data-driven development to Domain-Driven De...
Thibaud Desodt
 
Building nTier Applications with Entity Framework Services (Part 1)
David McCarter
 
Microsoft Entity Framework
Mahmoud Tolba
 
Building N Tier Applications With Entity Framework Services 2010
David McCarter
 
Entity Framework and Domain Driven Design
Julie Lerman
 
Learn Entity Framework in a day with Code First, Model First and Database First
Jibran Rasheed Khan
 
Lets focus on business value
Einar Ingebrigtsen
 
Ad

More from Excella (20)

PDF
DCSUG - What's Really Going On? Observer Worksheet
Excella
 
PDF
DCSUG - We Are The Leaders We Have Been Waiting For by Lyssa Adkins
Excella
 
PDF
DCSUG - Servant Leadership Handout
Excella
 
PDF
DCSUG - Servant Leadership
Excella
 
PDF
DCSUG - Applying Analysis in an Agile World
Excella
 
PDF
DCSUG - The Art and Practice of the Agile Leader
Excella
 
PPTX
DCSUG - Finding Lean in Agile
Excella
 
PDF
DCSUG - Impact Mapping
Excella
 
PDF
DCSUG - Happiness: A Key Component of Agile
Excella
 
PPTX
The Awkward Teenager of Testing
Excella
 
PDF
Let's Sharpen Your Agile Ax, It's Story Splitting Time
Excella
 
PDF
Managing for Happiness by Jurgen Appelo at DCSUG on 8/9/2016
Excella
 
PDF
The 7 Secrets of Highly Effective Retrospectives (DCSUG)
Excella
 
PPTX
Get Your Productivity Game On!!
Excella
 
PPTX
How to Structure Multi Team Organizations
Excella
 
PPTX
Tactics to Kickstart Your Journey Toward DevOps
Excella
 
PPTX
Intro to Mocking - DjangoCon 2015
Excella
 
PPTX
Tactics to Kickstart Your Journey Toward Continuous Delivery
Excella
 
PPTX
Using ansible vault to protect your secrets
Excella
 
PDF
Using Lean Thinking to Increase the Value of Agile
Excella
 
DCSUG - What's Really Going On? Observer Worksheet
Excella
 
DCSUG - We Are The Leaders We Have Been Waiting For by Lyssa Adkins
Excella
 
DCSUG - Servant Leadership Handout
Excella
 
DCSUG - Servant Leadership
Excella
 
DCSUG - Applying Analysis in an Agile World
Excella
 
DCSUG - The Art and Practice of the Agile Leader
Excella
 
DCSUG - Finding Lean in Agile
Excella
 
DCSUG - Impact Mapping
Excella
 
DCSUG - Happiness: A Key Component of Agile
Excella
 
The Awkward Teenager of Testing
Excella
 
Let's Sharpen Your Agile Ax, It's Story Splitting Time
Excella
 
Managing for Happiness by Jurgen Appelo at DCSUG on 8/9/2016
Excella
 
The 7 Secrets of Highly Effective Retrospectives (DCSUG)
Excella
 
Get Your Productivity Game On!!
Excella
 
How to Structure Multi Team Organizations
Excella
 
Tactics to Kickstart Your Journey Toward DevOps
Excella
 
Intro to Mocking - DjangoCon 2015
Excella
 
Tactics to Kickstart Your Journey Toward Continuous Delivery
Excella
 
Using ansible vault to protect your secrets
Excella
 
Using Lean Thinking to Increase the Value of Agile
Excella
 

Recently uploaded (20)

PDF
Productivity Management Software | Workstatus
Lovely Baghel
 
PDF
TrustArc Webinar - Data Privacy Trends 2025: Mid-Year Insights & Program Stra...
TrustArc
 
PDF
Meetup Kickoff & Welcome - Rohit Yadav, CSIUG Chairman
ShapeBlue
 
PDF
OpenInfra ID 2025 - Are Containers Dying? Rethinking Isolation with MicroVMs.pdf
Muhammad Yuga Nugraha
 
PPTX
Machine Learning Benefits Across Industries
SynapseIndia
 
PDF
Trading Volume Explained by CIFDAQ- Secret Of Market Trends
CIFDAQ
 
PPT
Interview paper part 3, It is based on Interview Prep
SoumyadeepGhosh39
 
PDF
Shuen Mei Parth Sharma Boost Productivity, Innovation and Efficiency wit...
AWS Chicago
 
PDF
Rethinking Security Operations - Modern SOC.pdf
Haris Chughtai
 
PDF
How a Code Plagiarism Checker Protects Originality in Programming
Code Quiry
 
PPTX
✨Unleashing Collaboration: Salesforce Channels & Community Power in Patna!✨
SanjeetMishra29
 
PDF
The Past, Present & Future of Kenya's Digital Transformation
Moses Kemibaro
 
PDF
Market Wrap for 18th July 2025 by CIFDAQ
CIFDAQ
 
PDF
Bitcoin+ Escalando sin concesiones - Parte 1
Fernando Paredes García
 
PDF
Novus-Safe Pro: Brochure-What is Novus Safe Pro?.pdf
Novus Hi-Tech
 
DOCX
TLE9 COOKERY DLL WEEK3 technology and li
jamierha cabaero
 
PDF
HR agent at Mediq: Lessons learned on Agent Builder & Maestro by Tacstone Tec...
UiPathCommunity
 
PPTX
Building and Operating a Private Cloud with CloudStack and LINBIT CloudStack ...
ShapeBlue
 
PDF
Lecture A - AI Workflows for Banking.pdf
Dr. LAM Yat-fai (林日辉)
 
PPTX
Extensions Framework (XaaS) - Enabling Orchestrate Anything
ShapeBlue
 
Productivity Management Software | Workstatus
Lovely Baghel
 
TrustArc Webinar - Data Privacy Trends 2025: Mid-Year Insights & Program Stra...
TrustArc
 
Meetup Kickoff & Welcome - Rohit Yadav, CSIUG Chairman
ShapeBlue
 
OpenInfra ID 2025 - Are Containers Dying? Rethinking Isolation with MicroVMs.pdf
Muhammad Yuga Nugraha
 
Machine Learning Benefits Across Industries
SynapseIndia
 
Trading Volume Explained by CIFDAQ- Secret Of Market Trends
CIFDAQ
 
Interview paper part 3, It is based on Interview Prep
SoumyadeepGhosh39
 
Shuen Mei Parth Sharma Boost Productivity, Innovation and Efficiency wit...
AWS Chicago
 
Rethinking Security Operations - Modern SOC.pdf
Haris Chughtai
 
How a Code Plagiarism Checker Protects Originality in Programming
Code Quiry
 
✨Unleashing Collaboration: Salesforce Channels & Community Power in Patna!✨
SanjeetMishra29
 
The Past, Present & Future of Kenya's Digital Transformation
Moses Kemibaro
 
Market Wrap for 18th July 2025 by CIFDAQ
CIFDAQ
 
Bitcoin+ Escalando sin concesiones - Parte 1
Fernando Paredes García
 
Novus-Safe Pro: Brochure-What is Novus Safe Pro?.pdf
Novus Hi-Tech
 
TLE9 COOKERY DLL WEEK3 technology and li
jamierha cabaero
 
HR agent at Mediq: Lessons learned on Agent Builder & Maestro by Tacstone Tec...
UiPathCommunity
 
Building and Operating a Private Cloud with CloudStack and LINBIT CloudStack ...
ShapeBlue
 
Lecture A - AI Workflows for Banking.pdf
Dr. LAM Yat-fai (林日辉)
 
Extensions Framework (XaaS) - Enabling Orchestrate Anything
ShapeBlue
 

Lean Enterprise Architecture

Editor's Notes

  • #2: Lean Enterprise Architecture (title page)A lean, testable enterprise architecture with a modern client stack
  • #3: Sponsors
  • #4: Introduction* We are building an enterprise web application with ASP.NET MVC, following best practices for design, development, testability and deployment.* We were looking for ways to improve and modernize* The motivation behind this design was our desire to do TDD, BDD, CI, CD.
  • #6: Are you familiar with:ASP.NET MVC?Entity Framework?Code First development?Code First Migrations?(slow-reveal diagram + ask the audience)
  • #7: Options and AlternativesDatabase-First (EDMX)Model-First (visual designer)Code-First with automatic migrationsCode-First with manual migrations
  • #9: AgendaAdd models and mapping in codeConnection StringEnable MigrationsUpdate DatabasePush code + Migrate server DBProcess Workflow
  • #10: 1. Models & Mapping
  • #11: 2. Connection StringsConnection StringWeb.configconfigSourceMachine config
  • #12: 3. Enable MigrationsEnable MigrationsConfiguration.csAdd Seed data
  • #13: 4. Update DatabaseUpdate DatabaseRun Seed DataVerify SQLVerify DB
  • #14: 5. Push Code + Migrate Server DBPush code to source controlOther developers pull and Update DatabaseMigrate server DB via migrate.exeUse TeamCity to automate this
  • #15: 6. Process WorkflowProcess WorkflowHandle existing databaseComply with enterprise requirements
  • #16: Code Walkthrough
  • #17: Code First Migrations allows:Continuous developmentSynchronization among team membersDatabase versioningServer deployment(diagram with star pattern)
  • #18: Resources
  • #19: IntroShahed showed DAL, so I’ll run through DomainFair warning, though…
  • #20: This is not like the other two parts of the presentation!I won’t show you code…Or specific technologies…at all.Instead, war stories and lesson learned
  • #21: Using Scrum,
  • #22: CI, CD…TDD, BDD, and DDD…
  • #23: But at the same time, some people involved with the project are proponents of…
  • #24: HEAVYWEIGHT enterprise architecture.To see what I mean, compare layersJokes aside, 1 story of over-engineering causing problems:
  • #26: When using DDD…blogsDev tried to use best practicesDidn’t check if we had the problems
  • #27: 3 problems: Use of UoW optionalRedundant, as I saidTo top it off: buggy, slow, redundant
  • #28: Now that’s what I call gold plating!
  • #30: The second story of the day is about premature optimization. Knuth: “premature optimization is the root of all evil”Optimizing for unproven use case because app is complex, expensive, many dev teamsAutomapper both waysWhat does Bogard know? Wrote != knows domain!
  • #31: Eventually realized it was gold plating as much as the Repositories were
  • #32: After unreasonable time, came to our sensesPulled out model into cross cutting layerNo more automapper!!Api has Data Contracts that look nothing like models, so that is a valid exception.
  • #33: Re: sharing a database context across objects.
  • #34: Service for every complex objectInjected new DbContext into every serviceProblem with shared sub-objects being accessible in several contexts
  • #35: Looked to SRP for guidance  one per objectNot only does not solve issue, makes it worse by making nearly all db objects sharedAlso creates Repo explosion
  • #36: Made a store to manage # of servicesRealized shared context problem, this fixes it# of Services = pain to manage and test!Came to realizetoo many services & shared context problemsStore was messy, painful hack
  • #37: Basically, realized that this is a step beyond gold plating.This is solid gold.
  • #38: Solved problem by splitting up into non-overlapping domains. Practically, this means 1 service per project team, & no overlapping objects.Anyone heard of bounded contexts…?Original solution proposed by DDD to begin with.Anyway,
  • #39: We fought against over-engineering and gold plating by using lean startup principles:BuiltMeasured pain; demonstrated to EA proponentsLearned from mistakes, built a solution closer to what we believed would alleviate the problemsRinse & Repeat