introduction to akamon software arquitecture for mpwar
TRANSCRIPT
Eloi Poch
http://twitter.com/eloipoch http://github.com/eloipoch http://linkedin.com/in/eloipoch
• Software Developer • Autodidacta • Team Learner
Eloi Poch
http://twitter.com/eloipoch http://github.com/eloipoch http://linkedin.com/in/eloipoch
• Technical Lead @Akamon
• CTO @TusJuegos
• Software Development Manager @Grupo ITnet
• Senior PHP Developer @Groupalia
Eloi Poch
http://twitter.com/eloipoch http://github.com/eloipoch http://linkedin.com/in/eloipoch
• To mock or not to mock @DeSymfony Bcn 2014
• DDD as an implementation detail @PHP Barcelona Febrero 2015
En números• + 60 trabajadores
• + 30 son desarrolladores
• 3 oficinas (Bcn, Vlc y Tlv)
• 12 millones de € de facturación en 2014
Números a nivel técnico
• Más de 24 millones de usuarios
• 25.000 jugadores concurrentes
• 420.000 DAUs
• 50 - 100 servidores
• Uno de los frameworks más avanzados
• Gran comunidad y ecosistema
• Gran ecosistema
• Rápida (y buena) evolución
• Alta flexibilidad
• Rápido (para ser PHP)
Symfony
Symfony en Akamon• Enrutamiento
• Contenedor de Servicios
• Comandos de Consola
• Logging
• Plantillas (Twig)
• Traducciones
UserPostController Command Bus
UserRegistratorCommandHandler
UserRegistratorDomain Event
Publisher
UserRegisteredDomainEventSubscriber
UserAccountOpener
User UserRepository Event Subscribers
.
.
.
POST /users[
userId: 0db90987-5ce1-4683-bb05-7d1b5539cb0b]
Command Handlers
.
.
.
UserR
egisteredDom
ainEvent
User
HORUS
BASIC REQUEST
UserRegistrationCommand
UserRegistrationCommand
userIdanalyticsContextId
userIdanalyticsContextId
UserRegisteredDomainEvent
userId
analyticsContextId
id (Economy Account)
Ejercicio• Crear Subscriber
GiveWelcomeBonusOnAccountOpened • Crear Service TransactionProcessor • Añadir el método Save al
AccountRepository • Configurar los servicios en el contenedor • Lanzar evento de dominio
AccountBalanceChanged
Ejercicio1. Acceptance test for the Welcome Bonus of 100
coins 2. Welcome Bonus subscriber on account opened 3. Economy Transaction Processor application
service 4. Add method save to Account Repository 5. Configure Welcome Bonus subscriber in the
container 6. Publish Account balance changed domain event 7. Behaviour & Integration tests for Welcome Bonus