Thursday, July 27, 2017

Difference between flow, sub flow and private flow in MuleSoft

All three Flow types can be referenced from a Flow Reference component.

Flow is a message processing block that has its own processing strategy and exception handling strategy. Used in integration tasks, data processing, connecting applications, event processing, etc.

Subflow always processes messages synchronously but inherits processing strategy and exception handling strategy from the calling flow. It can be used to split common logic and be reused by other flows.

Private flow does not have source define. It can be synchronous or asynchronous based on the processing strategy selected. Also, they have their own exception handling strategy. Allows you to define different threading profile.

====

Processing strategy
While sub-flow is always synchronous the private flow behavior depends on the processing strategy
Performance
Sub-flow has a better performance when using request-response exchange pattern as they are actually a new processor chain injected in the flow at configuration time. Private flows are instead useful for asynchronous call provided you configured their processing strategy properly
Exception strategy
Private flow: the exception will be trapped by the local ES the exception will not be propagated to that main flow.
Sub-flow: will use the exception strategy defined in the main flow and it will have the exception got in the sub-flow.
Message Properties
In both case all properties, regardless their scope, are preserved from the main flow.
Threading profile
Private flows: allows you to define a different threading profile, but if you don't they will use the default one, not inherit the invoking flow one 
Sub-flows: they will share the parent flow threading profile configuration
Overall
Sub-flows run within the same execution context (exception handler, transaction, properties) of its main flow, while private flow will initiate a new execution context.
To summarize, sub-flow is always recommended except in the case the exception needs to be handled in a separate flow different from the main flow or you are implementing an asynchronous pattern

Agile Methodologies

Agile Methodologies

  • SCRUM
  • XP - Extreme Programming
  • LEAN KANBAN
  • CRYSTAL
  • Dynamic Systems Development Method (DSDM Atern)
  • Feature Driven Development (FDD)
  • Agile Project Management (APM)
  • OpenUP


Agile Concepts

Tools and Techniques

PMI-ACP Exam Content (7-Domains)
1. Agile Principles and Mindset
2. Value Driven Delivery
3. Stakeholder Engagement
4. Team Performance
5. Adaptive Planning
6. Problem Detection and Resolution
7. Continuous Improvement


Tips, Tricks, Strategies and Tools

Agile adoption leads to effective scaling and faster delivery

Take up more projects and deliver faster

PMI - Agile Certified Practitioner (ACP)

Agile

  • Customer requirements and solutions evolve through the repeated cycles of planning, collaboration and delivery
  • Iterative and Incremental (Evolutionary)
  • Meets changing needs of stakeholders
  • "Just Enough Ceremony" - means creating only those documents that justifies the requirement.

Agile Best Practices

  • Face to Face communication
  • Shorter Development cycle
  • Business and Developer Collaboration
  • Working software as the primary demonstration of progress
  • Effective Engineering Practices
  • Frequent demonstrations of progress and early ROI
  • Inspect and adapt to business changes
  • Retrospectives and continuous improvement

Agile Core Principles and Practices

  • Early Delivery of Value through Iterations with Demos
  • User Stories reflect Business Value and Priority
  • Continuous Involvement of the customer
  • Acceptance Tests for all Requirements
  • Retrospectives
  • Sustainable Pace or Velocity
  • Communication
  • High Visibility