Más contenido relacionado La actualidad más candente (20) Similar a 20182712 Camunda Meetup Berlin_Andrey Shchagin (20) Más de camunda services GmbH (20) 20182712 Camunda Meetup Berlin_Andrey Shchagin3. © 2017 SynerTrade
Implement approval workflow for invoicing application
• Key customer
• Invoicing application is based on µService architecture and it is in
production
• Approval chain to be partially transferred from ERP (SAP) – no direct
access
• We don’t know how often the conditions will change
• We want flexible and reliable solutions which can be easily reused /
altered in case of need
• But the biggest challange is that…
3
4. © 2017 SynerTrade© 2017 SynerTrade
« Functionality has been
contracted. UAT in 5
weeks. Is it a big deal to
implement it? »
4
5. © 2017 SynerTrade
Which options did we have?
Proprietary solution
Try something new
Integrate a new framework:
• Solution should support BPMN
• It shall play nicely within µService
environment
• It should be reusable
Activity-based solution
Customer specific solution:
• No documentation
• Part of monolithic platform
• Implementation requires major refactoring
Integrated within monolith:
• Complex settings
• Implementation distributed across different
modules – hard to decouple
• Tightly coupled with the database
5
10. © 2017 SynerTrade
Main idea
10
1. Fetch
2. Convert
3. Upload
4. Apply
Fetch data from ERP database using lobster
Convert approval chain into DMN
Upload DMN table into the system and apply changes on the fly
Changes should be applied to all subsequent approval requests
15. © 2017 SynerTrade
It’s better to spend a whole day learning to
fly then fly over there in 5 minutes
Moto
15
16. © 2017 SynerTrade
Time line
16
Week 1
Extensive research:
• Check what we have
• Can it be reused?
• What do others do?
17. © 2017 SynerTrade
Time line
17
Week 1
Extensive research:
• Check what we have
• Can it be reused?
• What do others do?
Week 2
PoC for Camunda – Spring
integration
18. © 2017 SynerTrade
Time line
18
Week 1
Extensive research:
• Check what we have
• Can it be reused?
• What do others do?
Week 3
Integration with an
existing application
Week 2
PoC for Camunda – Spring
integration
19. © 2017 SynerTrade
Time line
19
Week 1
Extensive research:
• Check what we have
• Can it be reused?
• What do others do?
Week 3
Integration with an
existing application
Week 2
PoC for Camunda – Spring
integration
Week 4
Deploy on QA,
regression testing, bug
fixing
20. © 2017 SynerTrade
Time line
20
Week 1
Extensive research:
• Check what we have
• Can it be reused?
• What do others do?
Week 3
Integration with an
existing application
Week 2
PoC for Camunda – Spring
integration
Week 4
Deploy on QA,
regression testing, bug
fixing
Week 5
UAT
23. © 2017 SynerTrade
Time line
23
Week 1
Extensive research:
• Check what we have
• Can it be reused?
• What do others do?
Week 3
Integration with an
existing application
Week 2
PoC for Camunda – Spring
integration
Week 4
Deploy on QA,
regression testing, bug
fixing
Week 5
UAT
Week 5
Code refactoring,
regression testing, bug
fixing
24. © 2017 SynerTrade
New idea
24
1. Fetch
2. Transfer
3. New flow
4. Static DMN
Fetch data from ERP database using lobster
Transfer data model into XLR8 DB
Refactor BPMN. Delegate getting approval information from XLR8 DB to
service tasks
No DMN import needed. All information will be picked up from the
database. DMN is a service
27. © 2017 SynerTrade
Time line
27
Week 1
Extensive research:
• Check what we have
• Can be reused?
• What do others do?
Week 3
Integration with an
existing application
Week 2
PoC for Camunda – Spring
integration
Week 4
Deploy on QA,
regression testing, bug
fixing
Week 5
UAT
Week 5
Code refactoring,
regression testing, bug
fixing
Week 6
Go live
28. © 2017 SynerTrade
In total:
28
Implementation
5 weeks in total from PoC to release ready product.
Integration packaged in the library – can be reused on
demand.
Scalability
Invoicing container remains stateless. Database deployed in a
separate container can be deployed on cluster.
Maintenance
Minimal impact on the µService the infrastructure. Only one
new database container added.
Business use case
Fully covered. Workflow can be adjusted any time.
Impact on the product
No constraints implemented on top of product functionality.
Module is pluggable – can be added or removed on demand.
Customer satisfaction
2 customers live as of now with completely different
requirements. Usage of WF module keeps growing.
29. © 2017 SynerTrade
Conclusion
29
Professional service friendly
Business case will be covered more
accurately if professional service could
contribute to workflow definition – it’s
possible with BPMN
µService compatible
Camunda-Spring integration is fully
compatible with µService architecture
Increase revenue
Many customers were not contracted
because their business processes imply
complex workflows which would take
a lot of time to implement and would
impact the end product
Scalable
Scales horizontally – the bottle neck is the
data source. Can be mitigated using cluster