Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
MuleSoft Manchester Meetup #3 slides 31st March 2020
1. Manchester, UK | 31 March, 2020
Manchester MuleSoft Meetup #3
Francis
Integration Analyst
Saint-Gobain Building
Distribution
Cally
IT Delivery Manager
Studio Retail
Andy
Systems Team Manager
Studio Retail
Venkata
Integration Developer
Rathbone Brothers
2. Design practices to accelerate
API delivery using Anypoint Platform
Francis Edwards, Integration Analyst at Saint-Gobain Building Distribution
13. See you next time
Please send topic suggestions to the organizer
14. Our story so far:
key learns from successfully adopting the
Anypoint Platform, warts and all
Cally Clifft, IT Delivery Manager &
Andy Whaley, Systems Team Manager at Studio Retail
27. 27
It's time for us to be home. We’re staying
home to stay alive. This is not the end
Community Message
28. 28
► DataWeave language is introduced in Mule 4.0
► Replaces Mule Expression Language (MEL)
► Supported by Anypoint Studio version 7 onwards
► Features
► New functions/methods are added
► Improved power and method of transformation
► Simplified syntaxes
► Accessibility
► Ease of Learning
► Use of Data weave reduced the need for multiple transformers
► Process flow are more simplified compared to Mule 3 versions
Background and Overview
29. Understanding Capabilities
Transformation and Functions
29
► Many transformers are deprecated in Mule 4.0, as data weave replaces type transformations
► Functions can be defined in any way as required
► Operators are now functions
► Simplified transformation using data weave
► Transforms complex data and binary data can also be extracted from an expression
► Type coercion errors are reduced comparatively
► DataWeave language can be used in most components like http request, file connector, database etc.
30. Use Dataweave expression in Variable
Transformation and Functions
30
Transforms type and we can also define data type within same component
31. Map and MapObject
Mapping - The Power of Transformation
31
“Wonder is the beginning of wisdom.”
Socrates
► Map Transforms items from the array list
ex: ["Mulesoft","Developer","Venkata Nallapuneni"]
payload map ((item, index) ->(index):item )
output: [{"0": "Mulesoft"},{"1": "Developer"},{"2": "Venkata Nallapuneni" }]
► MapObject Transforms Object using key-value pair
ex: {"Company": "Rathbones", "name": "Venkata Nallapuneni", "title": "Developer"}
payload mapObject (value, key, index) -> { (index) : { (key):value} }
output: {"0": {"Company": "Rathbones"},"1": {"name": "Venkata Nallapuneni"},"2": {"title": "Developer"}}
32. “There’s nothing in this universe that can’t be explained.
Eventually.”
House MD
34. Accessing parameters is simplified in DataWeave 2
Simplifications and Inbound Properties
34
► Inbound properties are changed to attributes and outbound properties are removed
► Eg:
attributes.headers.id instead of message.inboundproperties.id
attributes.queryParams.company (camel casing for all attributes)
► Variables can be easily accessed in data weave 2.0 –replaced as variable (session vars and record vars are
removed)
► Access these parameters in any component that supports data weave expression
35. “The thing we all had in common wasn’t muscle; it was the will to do
whatever it takes.”
Chris Kyle, American Sniper
37. DataWeave types 2.0
37
Dataweave types are improved in every
version, have powerful capabilities
► dw::Core
Functions such as : camelize,capitalize etc.
► dw::Crypto
► dw::Runtime
► dw::core::Strings
► dw::core::URL
► dw::core::Binaries
► Etc.. Ex: stream a pdf document
► Create your own custom modules
A pint of sweat, saves a gallon of blood.
George S. Patton
38. What's New
38
New Data Formats Introduced
► Avro (application/avro)
► ndjson (application/x-ndjson)
► Java Properties (text/x-java-properties)
► Joins and improved functionalities in each dataweave types
Ex: Right Join, Inner Join and Left join can be used within dataweave
► Data types are improved in every module