SlideShare une entreprise Scribd logo
1  sur  24
The lean development stack
Adrien LAUER
SeedStack
2 of 24
History
Project started late 2012
10+ years experience of frameworks
Custom
Open-Source: mainly Spring
3 of 24
Goals
Build a common development stack
Shared across all business entities
Manufacturing / logistics /
finance / sales / R&D / …
Being extensible
Enabling re-use
4 of 24
Organization
Core team at PSA Peugeot Citroën
Other members at various locations
http://seedstack.org
https://github.com/seedstack
Twitter: @seedstack
IRC: #seedstack on freenode
5 of 24
Get presentation code samples at
https://github.com/adrienlauer/poss-samples
6 of 24
Core values
Opinion
A reference architecture for your apps
Modularity
Single responsibility principle
Extensibility
Open-Closed principle
7 of 24
Foundation
Java
Set of technologies to build backends
Web
Set of technologies to build Web apps
Business
Domain-Driven Design (DDD) approach
8 of 24
Foundation
Java
Set of technologies to build backends
Web
Set of technologies to build Web apps
Business
Domain-Driven Design (DDD) approach
9 of 24
Java focus
Kernel + plugin architecture
One plugin per concern
Scalable
One global Guice injector
Unified configuration
Plugin
discovery
Classpath
scan
Initialization
10 of 24
Sample plugin
public class MyPlugin extends AbstractPlugin {
private final Set<Class<?>> annotatedClasses = new HashSet<>();
@Override
public String name() {
return "my-plugin";
}
@Override
public Collection<ClasspathScanRequest> classpathScanRequests() {
return classpathScanRequestBuilder().annotationType(Service.class).build();
}
@Override
public InitState init(InitContext initContext) {
annotatedClasses.addAll(initContext.scannedClassesByAnnotationClass().get(Service.class));
return InitState.INITIALIZED;
}
@Override
public Object nativeUnitModule() {
return (Module) binder -> annotatedClasses.forEach(binder::bind);
}
}
11 of 24
So we built the core…
Contains the kernel
Provides basic features
Launching
Configuration
IoC
Service commands
Diagnostics
12 of 24
Then we scaled up…
10+ plugins
Testing
Security
Transactions
REST
Metrics / health
Web
…
Adding new technologies is quick and easy
All PSA requirements have been covered
50 satisfied projects over two years
13 of 24
Foundation
Java
Set of technologies to build REST backends
Web
Set of technologies to build Web apps
Business
Domain-Driven Design (DDD) approach
14 of 24
Web focus
Loader + fragments architecture
A fragment per concern
Composable
Configure and initialize an SPA
Fragment
download
Configuration
computing
Initialization
15 of 24
Sample fragment
{
"id": "demo",
"name": "W20 POSS demo",
"modules": {
"user": "{demo}/modules/user"
},
"i18n": {
"en": [ "{demo}/i18n/messages-en.json" ],
"fr": [ "{demo}/i18n/messages-fr.json" ]
},
"routes": {
"hello": {
"template": "<div class="container"><h1>Hello World!</h1></div>",
"hidden": true
},
"user": {
"templateUrl": "{demo}/views/user.html",
"controller": "UserController"
}
}
}
16 of 24
Main features
Based on popular libraries
AngularJS
RequireJS
Advanced enterprise features
Multi CSS framework
Bootstrap
Angular material
Theming support
2 Open-Source themes
3 PSA proprietary themes
17 of 24
Foundation
Java
Set of technologies to build REST backends
Web
Set of technologies to build Web apps
Business
Domain-Driven Design (DDD) approach
18 of 24
Level of involvement
Annotations
Interfaces
Base classes
19 of 24
Building blocks
20 of 24
Main features
DDD semantic + injection
Easy-to-use default implementations
Smart DTO / domain mapping
Built-in identity generation strategies
21 of 24
Sample
class SaleServiceImpl implements SaleService {
private final Repository<Seller, Long> sellerRepository;
private final DomainRegistry domainRegistry;
@Inject
public SaleServiceImpl(Repository<Seller, Long> sellerRepository, DomainRegistry domainRegistry) {
this.sellerRepository = sellerRepository;
this.domainRegistry = domainRegistry;
}
@Override
public void updateBonus(Order order, Long sellerId) {
Seller seller = sellerRepository.load(sellerId);
if (seller == null) {
throw new IllegalArgumentException("Seller " + sellerId + " cannot be found");
}
BonusPolicy bonusPolicy = domainRegistry
.getPolicy(BonusPolicy.class, seller.getBonusPolicy());
double orderBonus = bonusPolicy.computeBonus(order);
seller.addToMonthlyBonus(orderBonus);
sellerRepository.save(seller);
}
}
22 of 24
Extensibility
20+ official add-ons
Audit, ElasticSearch, I18n, IO, JavaMail, JCache, JDBC, JMS, JPA, LDAP,
MongoDB, Monitoring, Neo4J, Redis, Scheduling, Solr, Spring-bridge,
Validation, W20-bridge, Web-Services, …
Open to third-party
http://seedstack.org/addons
PSA uses only 3 proprietary add-ons
23 of 24
Distribution
Global packaging of all modules
Each organization can roll its own distribution
Open-Source reference distribution released 3 times per year
16.4 16.7 16.11
24 of 24
Thank you!
Website: http://seedstack.org
GitHub: https://github.com/seedstack
IRC: #seedstack on freenode
Contributions welcome!
Pull requests
Documentation fixes
Issues

Contenu connexe

Tendances

Developing Web Sites and Services using Visual Studio 2013
Developing Web Sites and Services using Visual Studio 2013Developing Web Sites and Services using Visual Studio 2013
Developing Web Sites and Services using Visual Studio 2013
Microsoft Visual Studio
 
What's new for Developers in Visual Studio 2013
What's new for Developers in Visual Studio 2013What's new for Developers in Visual Studio 2013
What's new for Developers in Visual Studio 2013
Microsoft Visual Studio
 
ASP.NET 4 & Web Dev in Visual Studio 2010 - Alex Mackey, Readify
ASP.NET 4 & Web Dev in Visual Studio 2010 - Alex Mackey, ReadifyASP.NET 4 & Web Dev in Visual Studio 2010 - Alex Mackey, Readify
ASP.NET 4 & Web Dev in Visual Studio 2010 - Alex Mackey, Readify
READIFY
 
Web changesandasp4 upload
Web changesandasp4 uploadWeb changesandasp4 upload
Web changesandasp4 upload
READIFY
 

Tendances (20)

Introduction To Code Igniter
Introduction To Code IgniterIntroduction To Code Igniter
Introduction To Code Igniter
 
Top 10 web application development frameworks 2016
Top 10 web application development frameworks 2016Top 10 web application development frameworks 2016
Top 10 web application development frameworks 2016
 
JavaCro'15 - Creating Android Apps that Use Liferay - Igor Bešlić
JavaCro'15 - Creating Android Apps that Use Liferay - Igor BešlićJavaCro'15 - Creating Android Apps that Use Liferay - Igor Bešlić
JavaCro'15 - Creating Android Apps that Use Liferay - Igor Bešlić
 
Weblogic deployment
Weblogic deploymentWeblogic deployment
Weblogic deployment
 
Introduction to Yii & performance comparison with Drupal
Introduction to Yii & performance comparison with DrupalIntroduction to Yii & performance comparison with Drupal
Introduction to Yii & performance comparison with Drupal
 
Case Study: University of California, Berkeley and San Francisco
Case Study: University of California, Berkeley and San FranciscoCase Study: University of California, Berkeley and San Francisco
Case Study: University of California, Berkeley and San Francisco
 
qooxdoo - Open Source Ajax Framework
qooxdoo - Open Source Ajax Frameworkqooxdoo - Open Source Ajax Framework
qooxdoo - Open Source Ajax Framework
 
Developing Web Sites and Services using Visual Studio 2013
Developing Web Sites and Services using Visual Studio 2013Developing Web Sites and Services using Visual Studio 2013
Developing Web Sites and Services using Visual Studio 2013
 
Identity Manager Opensource OpenIDM Architecture
Identity Manager Opensource OpenIDM ArchitectureIdentity Manager Opensource OpenIDM Architecture
Identity Manager Opensource OpenIDM Architecture
 
What's new for Developers in Visual Studio 2013
What's new for Developers in Visual Studio 2013What's new for Developers in Visual Studio 2013
What's new for Developers in Visual Studio 2013
 
ASP.NET 4 & Web Dev in Visual Studio 2010 - Alex Mackey, Readify
ASP.NET 4 & Web Dev in Visual Studio 2010 - Alex Mackey, ReadifyASP.NET 4 & Web Dev in Visual Studio 2010 - Alex Mackey, Readify
ASP.NET 4 & Web Dev in Visual Studio 2010 - Alex Mackey, Readify
 
Web changesandasp4 upload
Web changesandasp4 uploadWeb changesandasp4 upload
Web changesandasp4 upload
 
JavaOne 2014 - Supporting Multi-tenancy Applications with Java EE
JavaOne 2014 - Supporting Multi-tenancy Applications with Java EEJavaOne 2014 - Supporting Multi-tenancy Applications with Java EE
JavaOne 2014 - Supporting Multi-tenancy Applications with Java EE
 
PHP Framework Battle
PHP Framework BattlePHP Framework Battle
PHP Framework Battle
 
JSF 2.3: Integration with Front-End Frameworks
JSF 2.3: Integration with Front-End FrameworksJSF 2.3: Integration with Front-End Frameworks
JSF 2.3: Integration with Front-End Frameworks
 
Rich Assad Resume
Rich Assad ResumeRich Assad Resume
Rich Assad Resume
 
Weblogic domain
Weblogic domainWeblogic domain
Weblogic domain
 
Future of SharePoint Dev SPFx Extensions
Future of SharePoint Dev   SPFx ExtensionsFuture of SharePoint Dev   SPFx Extensions
Future of SharePoint Dev SPFx Extensions
 
Codeigniter, a MVC framework for beginner
Codeigniter, a MVC framework for beginnerCodeigniter, a MVC framework for beginner
Codeigniter, a MVC framework for beginner
 
Programming with Azure Active Directory
Programming with Azure Active DirectoryProgramming with Azure Active Directory
Programming with Azure Active Directory
 

Similaire à SeedStack, the lean development stack

KB Seminars: Working with Technology - Platforms; 10/13
KB Seminars: Working with Technology - Platforms; 10/13KB Seminars: Working with Technology - Platforms; 10/13
KB Seminars: Working with Technology - Platforms; 10/13
MDIF
 

Similaire à SeedStack, the lean development stack (20)

20141002 delapsley-socalangularjs-final
20141002 delapsley-socalangularjs-final20141002 delapsley-socalangularjs-final
20141002 delapsley-socalangularjs-final
 
DevOps Digital Transformation: A real life use case enabled by Alien4Cloud
DevOps Digital Transformation: A real life use case enabled by Alien4CloudDevOps Digital Transformation: A real life use case enabled by Alien4Cloud
DevOps Digital Transformation: A real life use case enabled by Alien4Cloud
 
Open a dx at fosdem
Open a dx at fosdemOpen a dx at fosdem
Open a dx at fosdem
 
CloudNativeLondon 2018: "In Search of the Perfect Cloud Native Developer Expe...
CloudNativeLondon 2018: "In Search of the Perfect Cloud Native Developer Expe...CloudNativeLondon 2018: "In Search of the Perfect Cloud Native Developer Expe...
CloudNativeLondon 2018: "In Search of the Perfect Cloud Native Developer Expe...
 
Building Drupal Sites with Components
Building Drupal Sites with ComponentsBuilding Drupal Sites with Components
Building Drupal Sites with Components
 
Salesforce DX for Admin v2
Salesforce DX for Admin v2Salesforce DX for Admin v2
Salesforce DX for Admin v2
 
Gapand 2017 - Diseñando Arquitecturas Serverless en Azure
Gapand 2017 - Diseñando Arquitecturas Serverless en AzureGapand 2017 - Diseñando Arquitecturas Serverless en Azure
Gapand 2017 - Diseñando Arquitecturas Serverless en Azure
 
Salesforce DX for admin
Salesforce DX for adminSalesforce DX for admin
Salesforce DX for admin
 
Micro-Frontends JSVidCon
Micro-Frontends JSVidConMicro-Frontends JSVidCon
Micro-Frontends JSVidCon
 
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
 
Accelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessAccelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with Platformless
 
KB Seminars: Working with Technology - Platforms; 10/13
KB Seminars: Working with Technology - Platforms; 10/13KB Seminars: Working with Technology - Platforms; 10/13
KB Seminars: Working with Technology - Platforms; 10/13
 
Domain-Driven Design with SeedStack, OW2con'2018, June 7-8, 2018, Paris
Domain-Driven Design with SeedStack, OW2con'2018, June 7-8, 2018, ParisDomain-Driven Design with SeedStack, OW2con'2018, June 7-8, 2018, Paris
Domain-Driven Design with SeedStack, OW2con'2018, June 7-8, 2018, Paris
 
[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...
[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...
[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...
 
Tecnologias Free e Open Source na Plataforma Microsoft
Tecnologias Free e Open Source na Plataforma MicrosoftTecnologias Free e Open Source na Plataforma Microsoft
Tecnologias Free e Open Source na Plataforma Microsoft
 
Top10 Characteristics of Awesome Apps
Top10 Characteristics of Awesome AppsTop10 Characteristics of Awesome Apps
Top10 Characteristics of Awesome Apps
 
Erik Baardse - Bringing Agility to Traditional application by docker
Erik Baardse - Bringing Agility to Traditional application by dockerErik Baardse - Bringing Agility to Traditional application by docker
Erik Baardse - Bringing Agility to Traditional application by docker
 
The Future of Cloud Innovation, featuring Adrian Cockcroft
The Future of Cloud Innovation, featuring Adrian CockcroftThe Future of Cloud Innovation, featuring Adrian Cockcroft
The Future of Cloud Innovation, featuring Adrian Cockcroft
 
One Year in Six Minutes - My Professional Mindshifts (Oracle OpenWorld 2017)
One Year in Six Minutes - My Professional Mindshifts (Oracle OpenWorld 2017)One Year in Six Minutes - My Professional Mindshifts (Oracle OpenWorld 2017)
One Year in Six Minutes - My Professional Mindshifts (Oracle OpenWorld 2017)
 
AWS Cloud Essentials - An Overview
AWS Cloud Essentials - An OverviewAWS Cloud Essentials - An Overview
AWS Cloud Essentials - An Overview
 

Dernier

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Dernier (20)

Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 

SeedStack, the lean development stack

  • 1. The lean development stack Adrien LAUER SeedStack
  • 2. 2 of 24 History Project started late 2012 10+ years experience of frameworks Custom Open-Source: mainly Spring
  • 3. 3 of 24 Goals Build a common development stack Shared across all business entities Manufacturing / logistics / finance / sales / R&D / … Being extensible Enabling re-use
  • 4. 4 of 24 Organization Core team at PSA Peugeot Citroën Other members at various locations http://seedstack.org https://github.com/seedstack Twitter: @seedstack IRC: #seedstack on freenode
  • 5. 5 of 24 Get presentation code samples at https://github.com/adrienlauer/poss-samples
  • 6. 6 of 24 Core values Opinion A reference architecture for your apps Modularity Single responsibility principle Extensibility Open-Closed principle
  • 7. 7 of 24 Foundation Java Set of technologies to build backends Web Set of technologies to build Web apps Business Domain-Driven Design (DDD) approach
  • 8. 8 of 24 Foundation Java Set of technologies to build backends Web Set of technologies to build Web apps Business Domain-Driven Design (DDD) approach
  • 9. 9 of 24 Java focus Kernel + plugin architecture One plugin per concern Scalable One global Guice injector Unified configuration Plugin discovery Classpath scan Initialization
  • 10. 10 of 24 Sample plugin public class MyPlugin extends AbstractPlugin { private final Set<Class<?>> annotatedClasses = new HashSet<>(); @Override public String name() { return "my-plugin"; } @Override public Collection<ClasspathScanRequest> classpathScanRequests() { return classpathScanRequestBuilder().annotationType(Service.class).build(); } @Override public InitState init(InitContext initContext) { annotatedClasses.addAll(initContext.scannedClassesByAnnotationClass().get(Service.class)); return InitState.INITIALIZED; } @Override public Object nativeUnitModule() { return (Module) binder -> annotatedClasses.forEach(binder::bind); } }
  • 11. 11 of 24 So we built the core… Contains the kernel Provides basic features Launching Configuration IoC Service commands Diagnostics
  • 12. 12 of 24 Then we scaled up… 10+ plugins Testing Security Transactions REST Metrics / health Web … Adding new technologies is quick and easy All PSA requirements have been covered 50 satisfied projects over two years
  • 13. 13 of 24 Foundation Java Set of technologies to build REST backends Web Set of technologies to build Web apps Business Domain-Driven Design (DDD) approach
  • 14. 14 of 24 Web focus Loader + fragments architecture A fragment per concern Composable Configure and initialize an SPA Fragment download Configuration computing Initialization
  • 15. 15 of 24 Sample fragment { "id": "demo", "name": "W20 POSS demo", "modules": { "user": "{demo}/modules/user" }, "i18n": { "en": [ "{demo}/i18n/messages-en.json" ], "fr": [ "{demo}/i18n/messages-fr.json" ] }, "routes": { "hello": { "template": "<div class="container"><h1>Hello World!</h1></div>", "hidden": true }, "user": { "templateUrl": "{demo}/views/user.html", "controller": "UserController" } } }
  • 16. 16 of 24 Main features Based on popular libraries AngularJS RequireJS Advanced enterprise features Multi CSS framework Bootstrap Angular material Theming support 2 Open-Source themes 3 PSA proprietary themes
  • 17. 17 of 24 Foundation Java Set of technologies to build REST backends Web Set of technologies to build Web apps Business Domain-Driven Design (DDD) approach
  • 18. 18 of 24 Level of involvement Annotations Interfaces Base classes
  • 20. 20 of 24 Main features DDD semantic + injection Easy-to-use default implementations Smart DTO / domain mapping Built-in identity generation strategies
  • 21. 21 of 24 Sample class SaleServiceImpl implements SaleService { private final Repository<Seller, Long> sellerRepository; private final DomainRegistry domainRegistry; @Inject public SaleServiceImpl(Repository<Seller, Long> sellerRepository, DomainRegistry domainRegistry) { this.sellerRepository = sellerRepository; this.domainRegistry = domainRegistry; } @Override public void updateBonus(Order order, Long sellerId) { Seller seller = sellerRepository.load(sellerId); if (seller == null) { throw new IllegalArgumentException("Seller " + sellerId + " cannot be found"); } BonusPolicy bonusPolicy = domainRegistry .getPolicy(BonusPolicy.class, seller.getBonusPolicy()); double orderBonus = bonusPolicy.computeBonus(order); seller.addToMonthlyBonus(orderBonus); sellerRepository.save(seller); } }
  • 22. 22 of 24 Extensibility 20+ official add-ons Audit, ElasticSearch, I18n, IO, JavaMail, JCache, JDBC, JMS, JPA, LDAP, MongoDB, Monitoring, Neo4J, Redis, Scheduling, Solr, Spring-bridge, Validation, W20-bridge, Web-Services, … Open to third-party http://seedstack.org/addons PSA uses only 3 proprietary add-ons
  • 23. 23 of 24 Distribution Global packaging of all modules Each organization can roll its own distribution Open-Source reference distribution released 3 times per year 16.4 16.7 16.11
  • 24. 24 of 24 Thank you! Website: http://seedstack.org GitHub: https://github.com/seedstack IRC: #seedstack on freenode Contributions welcome! Pull requests Documentation fixes Issues