MicroProcess Architectures: Planning for Change, and Retaining Flexibility

location_city Bengaluru schedule Mar 18th 04:30 - 05:15 PM IST place Grand Ball Room 1 people 10 Interested

This experience report explores three different MicroProcess architectures and the situations in which each was applied. We start with a traditional, Design Pattern-based approach which still efficiently handles customizations without resorting to complex message-passing designs. Then we follow up with a different architecture appropriate when many tasks must be done, but the order is not too important (with examples). Finally, we discuss the uber-popular MicroService architecture, but with a focus on solving the “fuzzy” problems that lack definitive answers (fraud detection, loan risk, etc.) Each of these has base code in the public domain! If your environment requires constant tweaking for individual clients, you don’t want to miss this talk!

MicroProcess refers to a family of architectures which share some key traits:

  • Low coupling of components
  • Ease of introduction of changes
  • Simple management of variations

The first architecture is rooted in Design Patterns (GoF book). Working through several patterns, we build a traditional architecture that retains flexibility. We include several recent applications of this process as well:

  • Command pattern: The base pattern captures individual tasks, as well as their reversal
  • Composite pattern: We glue these individual tasks into groups
  • State pattern: Handle the restoration of suspended processes
  • Visitor pattern: Extract the state of a process, necessary for resuming a process

The second architecture is an evolution of MicroServices, without having to invest in complex cloud configuration issues. In this architecture, a Step captures the individual tasks, and Status captures the current state. The Steps are executed (in any order!) until a steady state occurs (Status is not changed). The Status then reflects:

  • Successfully results
  • Negative results (aka Errors, which need correction)
  • Pending results, and the responsible party

Through the Status, a UI can be built to resolve pending issues and errors.The final architecture inspired the original term MicroServices. In this architecture, an event bus is used to isolate the tasks from each other, and to restrict coupling to only the message format (JSON in this case). This architecture addresses problems without clear-cut answers (“fuzzy” problems in my world) like fraud detection, decisions to lend money, finding the best advertising copy. It also supports implementation of the various tasks in the appropriate language. The use of this architecture in several projects will be discussed.



Target Audience

This is targeted for enterprise and application architects, and for team leads in efforts that require customization for individual clients. These patterns can successfully defend the forces that create “tar balls” that drive periodic rewrite and reinvestment in the platform.

Prerequisites for Attendees

This is an architectural talk, so background in software architecture or application design is helpful, but not essential.


schedule Submitted 2 months ago