SlideShare ist ein Scribd-Unternehmen logo
1 von 61
Downloaden Sie, um offline zu lesen
Decathlon Sport Meeting
Alonso Torres, DEVELOPER
Sports, a new Grails discipline
Antonio de la Torre, DEVELOPER
Kaleidos
Introduction
What’s Decathlon Sport Meeting?
Intro
Intro
Why want Decathlon to develop a Social Network?
● Decathlon’s mission is to make sports widely available
● Sport Meeting was created to take this one step further
Intro
Who developed it?
Kaleidos
What did it contributed to the community?
● 3 Pull Request to Grails
GRAILS-11647, GRAILS-11323, GRAILS-10763
● 6 open sourced plugins
Intro
Intro
How is DSM?
100k registered users
1000 active sport proposals
35 sports
Development Decisions
«The risk of a wrong decision is preferable
to the terror of indecision.»
Maimónides (12th c.)
Development decisions
Divided in
three applications
● WEB, JOBS, API
and a plugin with business
logic and common code
● CORE
JOBS
WEB API
CORE
Development decisions
Command Objects
● Responsibility
● Validate objects
○ accessing model to validate data
Development decisions
Command Objects
Check if is a type
and a valid domain object
Development decisions
Tests
● Start with Integration tests << due to odd behaviour
● and moving to Unit tests << less dependency
Development decisions
Asynchronous processes and background jobs
● Asynchronous processes (platform-core)
○ Immediate email sending
○ Push notifications to mobile devices
Development decisions
Asynchronous processes and background jobs
● Background jobs (quartz)
○ Quartz scheduler library
○ Tasks that are processed overnight
■ Proposals clean up
■ Mailing with interesting stuff (users, proposals)
API Decisions
API decisions
Trait with helpers to create responses: 4XX
API decisions
Command Objects accepts input JSON < Magic happens
API decisions
Command Objects accepts input JSON < Magic happens
API decisions
Command Objects accepts input JSON < Magic happens
Binding Lists
API decisions
Data Oriented Design (RESTful)
over
Screen Oriented Design
Infrastructure decisions
Infrastructure decisions
PostgreSQL as our main database
● Open-Source and very mature
● Highly scalability
● Widely used
Infrastructure decisions
MongoDB as a secondary storage for denormalized data
● Optimize read and searches by storing documents
● Filter, sorting, querying
● Highly availability
Infrastructure decisions
MongoDB to store statistics and usage data
● Fire and forget model
● Map-reduce to extract the information
Infrastructure decisions
MongoDB for geolocalized data
● Great support of geolocalization
● Aggregation pipeline
Infrastructure decisions
Terracotta as a Hibernate second-level cache
and HTTP sessions
● Dual licensing (community and commercial)
● Problems scaling (on the community product)
● Decided to change to Redis
Infrastructure decisions
Releases upload to a Nexus repository
● Upload all the software revisions
● “release plugin” can manage this
● Could be easily automated for a continuous
delivery
Awesome Tools
«If I have seen further it is only by standing
on the shoulders of giants.»
Isaac Newton
Awesome tools
Java Melody Plugin
● Allows monitoring of requests and JVM state
● Saved us in several occasions
Awesome tools
Build Test Data Plugin
● Creates complex objects from your constraints
Awesome tools
Build Test Data Plugin
● Creates complex objects from your constraints
Awesome tools
Build Test Data Plugin
● Creates complex objects from your constraints
Check constraints and
relationships and creates
the necessary objects
PostgresSQL Extensions plugin
Awesome tools
● Disclaimer: created by @ilopmar & @alotor inside
Kaleidos
● Provides native access to PSQL native types:
HSTORE, Arrays, JSON...
PostgresSQL Extensions plugin
Awesome tools
Awesome tools
Platform Core plugin
● Asynchronous task is a bliss
● Maintained by the Grails-core team
Awesome tools
Platform Core plugin
Know your tools
Awesome tools
GPars
● Easy parallelization inside the Groovy core
● Provides DSL’s and an easy API to parallelize
expensive tasks
● Sometimes difficult to work with GORM
Awesome tools
GPars
Awesome tools
GPars
Five threads at the same
time
Awesome tools
GPars
we need a transaction within
the new thread
Awesome tools
Groovy Metaprogramming
● Sometimes the magic is fun :)
● We developed a system with metaprogramming to
easily create new types of notification
Awesome tools
Awesome tools
Grails & Spring
● Problem: we wanted different implementations in
development and “real” environments
● Examples: notifications, file storage...
Awesome tools
Awesome tools
Inject a generic “fileService”
Awesome tools
Alias the necessary bean
per environment
Difficult Challenges
Difficult Challenges
Migration Grails 2.1.5 → 2.4.4
Difficult Challenges
Migration Grails 2.1.5 → 2.4.4
● Upgrade Grails and it’s dependencies
● Package changes, API changes…
● DataBinding and Command objects changes
Difficult Challenges
URL’s internationalization
● Grails doesn’t support out-of-the-box multi-language URL’s
Difficult Challenges
Tests pollution
● With 1500+ tests if you’re polluting one of your
tests is a big issue
● If this happens to you check:
by @tednaleid
http://bit.ly/1FlJs75
Difficult Challenges
API Documentation
● There is no easy way to keep an up-to-date API
documentation with Grails REST support
● Our solution: the documentation as GSP’s allow us to
reuse certain common part’s (like messages structure)
Difficult Challenges
MongoDB Plugin
● Mongodb’s GORM plugin had unexpected
behaviour
● We finally decided to use the low-level API when
accessing MongoDB
Going Forward
Going forward...
● Currently the application is only available for
spanish users
● Decathlon is present in 27 countries
Travel abroad!
Going forward...
● Decathlon Sport Meeting will be opening their API
● We hope to create an application ecosystem
around the social network
Opening the API
Going forward...
● First application using DSM API
● Was done during the ΠWEEK
Sport Spot
Going forward...
See you on track!

Weitere ähnliche Inhalte

Mehr von Antonio de la Torre Fernández

ITSmf Astur18 La agilidad como motor de cambio en las organizaciones
ITSmf Astur18 La agilidad como motor de cambio en las organizacionesITSmf Astur18 La agilidad como motor de cambio en las organizaciones
ITSmf Astur18 La agilidad como motor de cambio en las organizacionesAntonio de la Torre Fernández
 
Taller Agile para emprendedores InnovAstur y Oviedo Emprende
Taller Agile para emprendedores InnovAstur y Oviedo EmprendeTaller Agile para emprendedores InnovAstur y Oviedo Emprende
Taller Agile para emprendedores InnovAstur y Oviedo EmprendeAntonio de la Torre Fernández
 
Discusiones y decisiones: herramientas para la efectividad
Discusiones y decisiones: herramientas para la efectividadDiscusiones y decisiones: herramientas para la efectividad
Discusiones y decisiones: herramientas para la efectividadAntonio de la Torre Fernández
 
CAS2016 Community of Need & Community of Solutions (December 1st 2016)
CAS2016 Community of Need & Community of Solutions (December 1st 2016)CAS2016 Community of Need & Community of Solutions (December 1st 2016)
CAS2016 Community of Need & Community of Solutions (December 1st 2016)Antonio de la Torre Fernández
 
CAS2014 - Integrando UX & Diseño en el Desarrollo Agil - La historia dos años...
CAS2014 - Integrando UX & Diseño en el Desarrollo Agil - La historia dos años...CAS2014 - Integrando UX & Diseño en el Desarrollo Agil - La historia dos años...
CAS2014 - Integrando UX & Diseño en el Desarrollo Agil - La historia dos años...Antonio de la Torre Fernández
 
ALE14 - Involving UX and Design in Agile Development #sketchnoting
ALE14 - Involving UX and Design in Agile Development #sketchnotingALE14 - Involving UX and Design in Agile Development #sketchnoting
ALE14 - Involving UX and Design in Agile Development #sketchnotingAntonio de la Torre Fernández
 
Where i put my business logic - Greach 2014, Madrid, Spain
Where i put my business logic  - Greach 2014, Madrid, SpainWhere i put my business logic  - Greach 2014, Madrid, Spain
Where i put my business logic - Greach 2014, Madrid, SpainAntonio de la Torre Fernández
 
CAS 2012. Agile en equipos mixtos: Diseño y Desarrollo. Amainando tempestades
CAS 2012. Agile en equipos mixtos: Diseño y Desarrollo. Amainando tempestadesCAS 2012. Agile en equipos mixtos: Diseño y Desarrollo. Amainando tempestades
CAS 2012. Agile en equipos mixtos: Diseño y Desarrollo. Amainando tempestadesAntonio de la Torre Fernández
 
Nuevos negocios y empleos basados en el Software y el Conocimiento Libre
Nuevos negocios y empleos basados en el Software y el Conocimiento LibreNuevos negocios y empleos basados en el Software y el Conocimiento Libre
Nuevos negocios y empleos basados en el Software y el Conocimiento LibreAntonio de la Torre Fernández
 

Mehr von Antonio de la Torre Fernández (16)

ITSmf Astur18 La agilidad como motor de cambio en las organizaciones
ITSmf Astur18 La agilidad como motor de cambio en las organizacionesITSmf Astur18 La agilidad como motor de cambio en las organizaciones
ITSmf Astur18 La agilidad como motor de cambio en las organizaciones
 
Taller Agile para emprendedores InnovAstur y Oviedo Emprende
Taller Agile para emprendedores InnovAstur y Oviedo EmprendeTaller Agile para emprendedores InnovAstur y Oviedo Emprende
Taller Agile para emprendedores InnovAstur y Oviedo Emprende
 
Discusiones y decisiones: herramientas para la efectividad
Discusiones y decisiones: herramientas para la efectividadDiscusiones y decisiones: herramientas para la efectividad
Discusiones y decisiones: herramientas para la efectividad
 
CAS2016 Community of Need & Community of Solutions (December 1st 2016)
CAS2016 Community of Need & Community of Solutions (December 1st 2016)CAS2016 Community of Need & Community of Solutions (December 1st 2016)
CAS2016 Community of Need & Community of Solutions (December 1st 2016)
 
El viaje de Angular1 a Angular2
El viaje de Angular1 a Angular2El viaje de Angular1 a Angular2
El viaje de Angular1 a Angular2
 
UX Agilista - UXSpain 2015
UX Agilista - UXSpain 2015UX Agilista - UXSpain 2015
UX Agilista - UXSpain 2015
 
CAS2014 - Integrando UX & Diseño en el Desarrollo Agil - La historia dos años...
CAS2014 - Integrando UX & Diseño en el Desarrollo Agil - La historia dos años...CAS2014 - Integrando UX & Diseño en el Desarrollo Agil - La historia dos años...
CAS2014 - Integrando UX & Diseño en el Desarrollo Agil - La historia dos años...
 
¿Se puede implementar una Cultura Ágil?
¿Se puede implementar una Cultura Ágil?¿Se puede implementar una Cultura Ágil?
¿Se puede implementar una Cultura Ágil?
 
ALE - Why it's worth going?
ALE - Why it's worth going?ALE - Why it's worth going?
ALE - Why it's worth going?
 
ALE14 - Involving UX and Design in Agile Development #sketchnoting
ALE14 - Involving UX and Design in Agile Development #sketchnotingALE14 - Involving UX and Design in Agile Development #sketchnoting
ALE14 - Involving UX and Design in Agile Development #sketchnoting
 
Where i put my business logic - Greach 2014, Madrid, Spain
Where i put my business logic  - Greach 2014, Madrid, SpainWhere i put my business logic  - Greach 2014, Madrid, Spain
Where i put my business logic - Greach 2014, Madrid, Spain
 
A User Story - some ideas
A User Story - some ideasA User Story - some ideas
A User Story - some ideas
 
Mejoras CAS 2011
Mejoras CAS 2011Mejoras CAS 2011
Mejoras CAS 2011
 
CAS 2012. Agile en equipos mixtos: Diseño y Desarrollo. Amainando tempestades
CAS 2012. Agile en equipos mixtos: Diseño y Desarrollo. Amainando tempestadesCAS 2012. Agile en equipos mixtos: Diseño y Desarrollo. Amainando tempestades
CAS 2012. Agile en equipos mixtos: Diseño y Desarrollo. Amainando tempestades
 
Arquitectura en Alfresco
Arquitectura en AlfrescoArquitectura en Alfresco
Arquitectura en Alfresco
 
Nuevos negocios y empleos basados en el Software y el Conocimiento Libre
Nuevos negocios y empleos basados en el Software y el Conocimiento LibreNuevos negocios y empleos basados en el Software y el Conocimiento Libre
Nuevos negocios y empleos basados en el Software y el Conocimiento Libre
 

Kürzlich hochgeladen

Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
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 WorkerThousandEyes
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
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 2024The Digital Insurer
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
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 FresherRemote DBA Services
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 

Kürzlich hochgeladen (20)

Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
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
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
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
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - 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
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 

Decathlon Sport Meeting - Grails, a new sport discipline - Greach'15