SlideShare a Scribd company logo
1 of 50
Movingfromamonolith
toadistributedmonolith
#nishmahanty
YOW! CTO Summit Melbourne 2018
© Netget Limited | Slide 2
irexchange Platform Overview
3
Pricebook Order Management
Analytics & Business Intelligence
Invoicing &
Payments
CRM
Finance
system
Portal
POS Integration
Inventory
Logistics - Flow through & Delivery
AWS
irexchange Platform Overview
4
Pricebook Order Management
Analytics & Business Intelligence
Invoicing &
Payments
CRM
Finance
system
Portal
POS Integration
Inventory
Logistics - Flow through & Delivery
AWS
Architecture Requirements: pre-Cloud
Commercial-in-confidence | © Netget Limited | Slide 5
PERFORMANCE COSTRELIABILITY
Architecture Requirements: pre-Cloud
Commercial-in-confidence | © Netget Limited | Slide 6
PERFORMANCE COSTRELIABILITY
Architecture Requirements - Cloud
Commercial-in-confidence | © Netget Limited | Slide 7
PERFORMANCE RELIABILITY COST PORTABLE
EVOLVABLE SECURE SCALABLE RESILIENT
EASE OF CHANGE AUTOMATED ADAPTABLE AUDITABLE
Commercial-in-confidence | © Netget Limited | Slide 8
PERFORMANCE RELIABLE COST PORTABLE
EVOLVABLE SECURE SCALABLE RESILIENT
EASE OF CHANGE AUTOMATED ADAPTABLE AUDITABLE
Commercial-in-confidence | © Netget Limited | Slide 9
PERFORMANCE RELIABLE COST PORTABLE
EVOLVABLE SECURE SCALABLE RESILIENT
EASE OF CHANGE ADAPTABLE AUDITABLEAUTOMATED
Commercial-in-confidence | © Netget Limited | Slide 10
SPEED QUALITY COST PORTABLE
EVOLVABLE SECURE SCALABLE RESILIENT
SPEED CHANGE AUTOMATED ADAPTABLE PERFORMANT
What is the best architecture for a startup company
Microservices 101
• A collection of single function modules with well-
defined interfaces and operations that can be
deployed and scaled independently
• Service-oriented architecture composed of loosely-
coupled elements that have bounded contexts
What is a Microservice
B2B Architecture Overview
15
Suppliers Retailers
Pricebook Order Management
Invoicing &
Payments
Portal POS Integration
Inventory
Business Processes
Admin UIs
FULFILMENT
RETAILERS
SUPPLIERS
API
GATEWAY POS INTEGRATION
TRANSPORT
PRICEBOOK
ORDERS
INVOICES
INVENTORYPORTAL
REST
API
REST
API
REST
API
REST
API
REST
API
REST
API
B2B Architecture Overview
Suppliers Retailers
Pricebook Order Management
Invoicing &
Payments
Portal POS Integration
Inventory
Business Processes
Admin UIs
FULFILMENTJun 2016
B2B Architecture Overview
Suppliers Retailers
Pricebook Order Management
Invoicing &
Payments
Portal POS Integration
Inventory
Business Processes
Admin UIs
FULFILMENTJun 2016
Pricebook Order Management
Invoicing &
Payments
Portal POS Integration
Inventory
Business Processes
Admin UIs
B2B Platform Physical Architecture
MS SQL
SERVER
Iron
JAVA
Jun 2016
DOCKER
VPC
Public subnet
Private subnet
AWS Cloud
Availability zone 1
Auto Scaling group
NAT gateway
AWS Region
DOCKER
Public subnet
Private subnet
Availability zone 2
NAT gateway
Cluster
LEGACY LEGACY
DOCKER
VPC
Public subnet
Private subnet
AWS Cloud
Availability zone 1
Auto Scaling group
NAT gateway
AWS Region
DOCKER
Public subnet
Private subnet
Availability zone 2
NAT gateway
Cluster
LEGACY LEGACY
SCALABLE
SECURE
RESILIENT
Architecture Principle
We tend to prefer AWS tools over
custom or 3rd party tools because
they rapidly improve over time
Availability zone 1
Stored Procedures
LEGACY
APP
July 2016
In praise of Monoliths
EASE OF CHANGE
AUTOMATED
Stored Procedures
LEGACY
APP
UI Product
Supplier
Order
Retailer
Strangler Vine pattern
EASE OF CHANGE
July 2016
Stored Procedures
LEGACY
APP
UI Product
Supplier
Order
Retailer
Strangler Vine pattern
EASE OF CHANGE
AUTOMATED
July 2016
Deadlines: November Launch!
TEAM SCALE SPEED OF
LEARNING
August 2016
Stored Procedures
LEGACY
APP
UI Product
Supplier
Order
Retailer
Deadlines!
TEAM SCALE
SPEED OF
LEARNING
August 2016
Suppliers FulfilmentRetailers
LEGACY & Friends RETAILER SUPPLIER FULFILMENT
LEGACY
Product
Order
Retailer
Supplier
Pricing
Demand
Invoice
Order
Catalog Transport
Despatch
FA API
FA Admin
Inventory
Promo
Ranging Craft API
Craft Admin
TEAM SCALE SPEED OF
LEARNING
Slice by Domain
August 2016
Suppliers FulfilmentRetailers
LEGACY & Friends RETAILER SUPPLIER FULFILMENT
LEGACY
Product
Order
Retailer
Supplier
Pricing
Demand
Invoice
Order
Catalog Transport
Despatch
FA API
FA Admin
Inventory
Promo
Ranging Craft API
Craft Admin
TEAM SCALE SPEED OF
LEARNING
Slice by Domain
August 2016
COST
Architecture Principle
Build your core I.P.
But don’t build any non-core I.P.
Architecture
Borrow > Rent > Buy > Build
LEGACY & Friends RETAILER SUPPLIER FULFILMENT
LEGACY
Product
Order
Retailer
Supplier
Pricing
Demand
Invoice
Order
Catalog Transport
Despatch
FA API
FA Admin
Inventory
Promo
Ranging Craft API
Craft Admin
EASE OF
CHANGE
We get slower
TEAM SCALE
September 2016
COST
LEGACY & Friends RETAILER SUPPLIER FULFILMENT
Legacy
Product
Order
Retailer
Supplier
Pricing
Demand
Invoice
Order
Catalog Transport
Despatch
FA API
FA Admin
Inventory
Promo
Ranging Craft API
Craft Admin
EASE OF CHANGETEAM SCALE
September 2016
And slower
Vision & Friends RETAILER SUPPLIER FULFILMENT
Vision
Product
Order
Retailer
Supplier
PricingDemand
Invoice
Order
Catalog Transport
Despatch
FA API
FA AdminInventoryPromo
Ranging Craft API
Craft Admin
EASE OF CHANGEMORALE
September 2016
And slower still
TEAM SCALE
December 2018
There is a happy ending
http://www.unicornsrule.com/rainbows-and-unicorns/
Architecture Principle
Make your Services as small as they
need to be to match your Business
capabilities, but no smaller!
Architecture Principle
Architecture Principle
Vision
Product
Order
Retailer
Supplier
Pricing
Demand
Invoice
Order
Catalog
Transport
Despatch
FA API
FA Admin
Inventory
Promo
Ranging
Craft API
Craft Admin
December 2018
There can be only one.
43
B2B Platform Overview
43
Pricebook Order Management
Invoicing &
Payments
Portal POS Integration
Inventory
Business Processes
Admin UIs
June 2016
Lessons Learned
Lessons Learned
Lessons Learned
Thank you
Commercial-in-confidence | © Netget Limited | Slide 47
We’re hiring
Commercial-in-confidence | © Netget Limited | Slide 48
Platform Overview
50
irexchange B2B platform components
Pricebook
• Product attributes
• Pricing
• Promotions
• Ranging
Order Management
• Optimised ordering
• Aggregation by distribution centre
• Aggregation by supplier
• Order days and supplier lead times
• Purchase order generation & submission
• Delivery confirmation by supplier
Flow through & delivery
• Receiving
• Optimised routing
• Pick-to-zero
• Small carton pick
• Exception management
• Despatch & delivery tracking
Analytics & insights
Invoicing &
Payments
• Transparency
• Product
• Service fee
• Freight
• Payment terms
• eInvoice
CRM
Finance
system
Portal
• Navigation and search
• Shopping cart
POS Integration
• Host file
• Order interface
Sub-components
Vision
CRAFT/FlowAssist
Dynamics
Online
NAV/Sage
V
C/F
CRM
O
GL Power BI BI
VV
V
O
BI
C/F
GLCRM
V
Single order to supplier Supplier delivery Flow-through distribution process
Inbound Outbound
Optimised delivery to retailersIntelligent supplyRetailer places an orderirexchange publishes productSupplier uploads to GS1

More Related Content

What's hot

SaaSPlex Telco/Cellco/ISP
SaaSPlex Telco/Cellco/ISPSaaSPlex Telco/Cellco/ISP
SaaSPlex Telco/Cellco/ISP
guest45dca
 

What's hot (20)

Marrying the Old and New to Deliver Mobile Innovatino
Marrying the Old and New to Deliver Mobile InnovatinoMarrying the Old and New to Deliver Mobile Innovatino
Marrying the Old and New to Deliver Mobile Innovatino
 
API Management Solution Powerpoint Presentation Slides
API Management Solution Powerpoint Presentation SlidesAPI Management Solution Powerpoint Presentation Slides
API Management Solution Powerpoint Presentation Slides
 
Using Kubernetes to Extend Enterprise Software
Using Kubernetes to Extend Enterprise Software Using Kubernetes to Extend Enterprise Software
Using Kubernetes to Extend Enterprise Software
 
SaaSPlex Telco/Cellco/ISP
SaaSPlex Telco/Cellco/ISPSaaSPlex Telco/Cellco/ISP
SaaSPlex Telco/Cellco/ISP
 
APIdays Helsinki 2019 - API Management Trends 2019 with Janne Nieminen, Digia
APIdays Helsinki 2019 - API Management Trends 2019 with Janne Nieminen, DigiaAPIdays Helsinki 2019 - API Management Trends 2019 with Janne Nieminen, Digia
APIdays Helsinki 2019 - API Management Trends 2019 with Janne Nieminen, Digia
 
Becoming the Uncarrier: T-Mobile's Digital Journey
Becoming the Uncarrier: T-Mobile's Digital JourneyBecoming the Uncarrier: T-Mobile's Digital Journey
Becoming the Uncarrier: T-Mobile's Digital Journey
 
APIs at Scale - The Hyperconnected Enterprise
APIs at Scale - The Hyperconnected EnterpriseAPIs at Scale - The Hyperconnected Enterprise
APIs at Scale - The Hyperconnected Enterprise
 
apidays LIVE New York 2021 - API for multi-cloud management platform by Pawel...
apidays LIVE New York 2021 - API for multi-cloud management platform by Pawel...apidays LIVE New York 2021 - API for multi-cloud management platform by Pawel...
apidays LIVE New York 2021 - API for multi-cloud management platform by Pawel...
 
Which Application Modernization Pattern Is Right For You?
Which Application Modernization Pattern Is Right For You?Which Application Modernization Pattern Is Right For You?
Which Application Modernization Pattern Is Right For You?
 
Web Business Platforms On The Cloud An Engineering Perspective
Web Business Platforms On The Cloud   An Engineering PerspectiveWeb Business Platforms On The Cloud   An Engineering Perspective
Web Business Platforms On The Cloud An Engineering Perspective
 
API Management Part 1 - An Introduction to Azure API Management
API Management Part 1 - An Introduction to Azure API ManagementAPI Management Part 1 - An Introduction to Azure API Management
API Management Part 1 - An Introduction to Azure API Management
 
apidays LIVE JAKARTA - Event Driven APIs by Phil Scanlon
apidays LIVE JAKARTA - Event Driven APIs by Phil Scanlonapidays LIVE JAKARTA - Event Driven APIs by Phil Scanlon
apidays LIVE JAKARTA - Event Driven APIs by Phil Scanlon
 
What do you mean by "API as a Product"?
What do you mean by "API as a Product"?What do you mean by "API as a Product"?
What do you mean by "API as a Product"?
 
APIs at Enterprise Scale, Sid Bhatia, API Strategy & Practice Conference, Ams...
APIs at Enterprise Scale, Sid Bhatia, API Strategy & Practice Conference, Ams...APIs at Enterprise Scale, Sid Bhatia, API Strategy & Practice Conference, Ams...
APIs at Enterprise Scale, Sid Bhatia, API Strategy & Practice Conference, Ams...
 
AMPLIFY Managed File Transfer
AMPLIFY Managed File TransferAMPLIFY Managed File Transfer
AMPLIFY Managed File Transfer
 
SAP API Management and API Business Hub (TechEd Barcelona)
SAP API Management and API Business Hub (TechEd Barcelona)SAP API Management and API Business Hub (TechEd Barcelona)
SAP API Management and API Business Hub (TechEd Barcelona)
 
apidays LIVE Australia 2021 - SEEK: Establishing a new API integration platfo...
apidays LIVE Australia 2021 - SEEK: Establishing a new API integration platfo...apidays LIVE Australia 2021 - SEEK: Establishing a new API integration platfo...
apidays LIVE Australia 2021 - SEEK: Establishing a new API integration platfo...
 
Architecture for the API-enterprise
Architecture for the API-enterpriseArchitecture for the API-enterprise
Architecture for the API-enterprise
 
API Connect from IBM
API Connect from IBMAPI Connect from IBM
API Connect from IBM
 
apidays LIVE Jakarta - What will the next generation of API Portals look like...
apidays LIVE Jakarta - What will the next generation of API Portals look like...apidays LIVE Jakarta - What will the next generation of API Portals look like...
apidays LIVE Jakarta - What will the next generation of API Portals look like...
 

Similar to Moving from a Monolith to distributed Monolith

adopt_soa.94145841
adopt_soa.94145841adopt_soa.94145841
adopt_soa.94145841
ypai
 

Similar to Moving from a Monolith to distributed Monolith (20)

BEDCon 2016 - Kay Lerch on "Will trade an ESB for an agile integration soluti...
BEDCon 2016 - Kay Lerch on "Will trade an ESB for an agile integration soluti...BEDCon 2016 - Kay Lerch on "Will trade an ESB for an agile integration soluti...
BEDCon 2016 - Kay Lerch on "Will trade an ESB for an agile integration soluti...
 
UKOUG - Implementing Enterprise API Management in the Oracle Cloud
UKOUG - Implementing Enterprise API Management in the Oracle CloudUKOUG - Implementing Enterprise API Management in the Oracle Cloud
UKOUG - Implementing Enterprise API Management in the Oracle Cloud
 
MuleSoft London Community October 2017 - Hybrid and SAP Integration
MuleSoft London Community October 2017 - Hybrid and SAP IntegrationMuleSoft London Community October 2017 - Hybrid and SAP Integration
MuleSoft London Community October 2017 - Hybrid and SAP Integration
 
Why and How to Monitor Application Performance in Azure
Why and How to Monitor Application Performance in AzureWhy and How to Monitor Application Performance in Azure
Why and How to Monitor Application Performance in Azure
 
Why and How to Monitor App Performance in Azure
Why and How to Monitor App Performance in AzureWhy and How to Monitor App Performance in Azure
Why and How to Monitor App Performance in Azure
 
Nordstrom's Event-Sourced Architecture and Kafka-as-a-Service | Adam Weyant a...
Nordstrom's Event-Sourced Architecture and Kafka-as-a-Service | Adam Weyant a...Nordstrom's Event-Sourced Architecture and Kafka-as-a-Service | Adam Weyant a...
Nordstrom's Event-Sourced Architecture and Kafka-as-a-Service | Adam Weyant a...
 
Reinventing SAP on AWS: Scale & Simplify SAP Operations on AWS
Reinventing SAP on AWS: Scale & Simplify SAP Operations on AWSReinventing SAP on AWS: Scale & Simplify SAP Operations on AWS
Reinventing SAP on AWS: Scale & Simplify SAP Operations on AWS
 
A Multi-Company Perspective: Enterprise Cloud and PaaS
A Multi-Company Perspective: Enterprise Cloud and PaaSA Multi-Company Perspective: Enterprise Cloud and PaaS
A Multi-Company Perspective: Enterprise Cloud and PaaS
 
What You Need to Know About Operationalizing Your AWS Transit Hub
What You Need to Know About Operationalizing Your AWS Transit HubWhat You Need to Know About Operationalizing Your AWS Transit Hub
What You Need to Know About Operationalizing Your AWS Transit Hub
 
API Integration: Red Hat integration perspective
API Integration: Red Hat integration perspectiveAPI Integration: Red Hat integration perspective
API Integration: Red Hat integration perspective
 
AWS Serverless API Management - Meetup
AWS Serverless API Management - MeetupAWS Serverless API Management - Meetup
AWS Serverless API Management - Meetup
 
IoT Smart APIs using Nomos RuleX
IoT Smart APIs using Nomos RuleXIoT Smart APIs using Nomos RuleX
IoT Smart APIs using Nomos RuleX
 
A Capability Blueprint for Microservices
A Capability Blueprint for MicroservicesA Capability Blueprint for Microservices
A Capability Blueprint for Microservices
 
Be the Data Hero in Your Organization with SAP and CA Analytic Solutions
Be the Data Hero in Your Organization with SAP and CA Analytic SolutionsBe the Data Hero in Your Organization with SAP and CA Analytic Solutions
Be the Data Hero in Your Organization with SAP and CA Analytic Solutions
 
adopt_soa.94145841
adopt_soa.94145841adopt_soa.94145841
adopt_soa.94145841
 
Evolve 2014 experience driven commerce
Evolve 2014 experience driven commerceEvolve 2014 experience driven commerce
Evolve 2014 experience driven commerce
 
apidays Australia 2023 - APIs Aren't Enough: Why SaaS Leaders Are Investing I...
apidays Australia 2023 - APIs Aren't Enough: Why SaaS Leaders Are Investing I...apidays Australia 2023 - APIs Aren't Enough: Why SaaS Leaders Are Investing I...
apidays Australia 2023 - APIs Aren't Enough: Why SaaS Leaders Are Investing I...
 
Ripping off the Bandage: Re-Architecting Traditional Three-Tier Monoliths to ...
Ripping off the Bandage: Re-Architecting Traditional Three-Tier Monoliths to ...Ripping off the Bandage: Re-Architecting Traditional Three-Tier Monoliths to ...
Ripping off the Bandage: Re-Architecting Traditional Three-Tier Monoliths to ...
 
SaaS Operations: The Foundation of SaaS Agility (ARC216) - AWS re:Invent 2018
SaaS Operations: The Foundation of SaaS Agility (ARC216) - AWS re:Invent 2018SaaS Operations: The Foundation of SaaS Agility (ARC216) - AWS re:Invent 2018
SaaS Operations: The Foundation of SaaS Agility (ARC216) - AWS re:Invent 2018
 
AWS Cloud Experience CA: Soluciones SAP en AWS: maximice su valor de negocio
AWS Cloud Experience CA: Soluciones SAP en AWS: maximice su valor de negocioAWS Cloud Experience CA: Soluciones SAP en AWS: maximice su valor de negocio
AWS Cloud Experience CA: Soluciones SAP en AWS: maximice su valor de negocio
 

More from Nish Mahanty

LAST Conference - The Mickey Mouse model of leadership for software delivery ...
LAST Conference - The Mickey Mouse model of leadership for software delivery ...LAST Conference - The Mickey Mouse model of leadership for software delivery ...
LAST Conference - The Mickey Mouse model of leadership for software delivery ...
Nish Mahanty
 
Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st
Agile Australia Conference 2011 - Devops live accounts- continuous delivery_stAgile Australia Conference 2011 - Devops live accounts- continuous delivery_st
Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st
Nish Mahanty
 

More from Nish Mahanty (11)

Growing Teams - Tech Leading Ladies Meetup 2019
Growing Teams -  Tech Leading Ladies Meetup 2019Growing Teams -  Tech Leading Ladies Meetup 2019
Growing Teams - Tech Leading Ladies Meetup 2019
 
CTO School Melbourne 2017 - Getting Started at a Startup
CTO School Melbourne 2017 - Getting Started at a StartupCTO School Melbourne 2017 - Getting Started at a Startup
CTO School Melbourne 2017 - Getting Started at a Startup
 
Peeling the onion - deconstructing the layers of complexity in your business
Peeling the onion - deconstructing the layers of complexity in your businessPeeling the onion - deconstructing the layers of complexity in your business
Peeling the onion - deconstructing the layers of complexity in your business
 
Agile Case Study With Cliffnotes
Agile Case Study With CliffnotesAgile Case Study With Cliffnotes
Agile Case Study With Cliffnotes
 
Why take a Continuous Delivery approach in your organisatiion
Why take a Continuous Delivery approach in your organisatiionWhy take a Continuous Delivery approach in your organisatiion
Why take a Continuous Delivery approach in your organisatiion
 
LAST Conference - The Mickey Mouse model of leadership for software delivery ...
LAST Conference - The Mickey Mouse model of leadership for software delivery ...LAST Conference - The Mickey Mouse model of leadership for software delivery ...
LAST Conference - The Mickey Mouse model of leadership for software delivery ...
 
Eastern Melbourne Agile Meetup - Challenge Constraints
Eastern Melbourne Agile Meetup - Challenge ConstraintsEastern Melbourne Agile Meetup - Challenge Constraints
Eastern Melbourne Agile Meetup - Challenge Constraints
 
Agile Australia Conference 2012 - Building High Performing Teams - to deliver...
Agile Australia Conference 2012 - Building High Performing Teams - to deliver...Agile Australia Conference 2012 - Building High Performing Teams - to deliver...
Agile Australia Conference 2012 - Building High Performing Teams - to deliver...
 
Devops down under - building high performing teams
Devops down under - building high performing teamsDevops down under - building high performing teams
Devops down under - building high performing teams
 
Agile adoption tales from the coalface
Agile adoption   tales  from the coalfaceAgile adoption   tales  from the coalface
Agile adoption tales from the coalface
 
Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st
Agile Australia Conference 2011 - Devops live accounts- continuous delivery_stAgile Australia Conference 2011 - Devops live accounts- continuous delivery_st
Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st
 

Recently uploaded

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Recently uploaded (20)

ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 

Moving from a Monolith to distributed Monolith

Editor's Notes

  1. I’m Head of Development at irexchange – a small start-up based here in Melbourne. I wanted a share a case-study of how we evolved our architecture, and our experiences with adopting microservices. Hopefully you will get some ideas that you can apply in your own organisation
  2. Irexchange is a technology and distribution start-up aiming to disrupt the traditional wholesaler model in the FMCGs domain. The company has been around for 3 years and is going well. We have raised over $40M in investment capital and all the business metrics are looking good. It is a good news story and I am proud to have been part of it.
  3. That business growth has been built on top of the growth of our technology platform. Conceptually, we have 3 main systems. We have no fixed infrastructure – everything is in AWS
  4. That business growth has been built on top of the growth of our technology platform. Conceptually, we have 3 main systems. We have no fixed infrastructure – everything is in AWS
  5. Nowadays I feel that is like this – and the business wants everything.   But when you dig into the Business strategy for our start-up there are two over-arching business needs that come to the fore.
  6. Most important was speed to market –                 Speed in delivering new features for our customers                 Speed in evolving features based on customer feedback                 And Speed in identifying and fixing issues
  7.                 No data loss or breach                 Acceptable performance                 High availability   The other boxes are mostly hygiene factors – they need to be considered but they aren’t as important as the first two.   So what sort of architecture will give us those benefits – speed to market and minimise reputational damage?
  8.   So what sort of architecture will give us those benefits – speed to market and minimise reputational damage?
  9.   So what sort of architecture will give us those benefits – speed to market and minimise reputational damage? The answer, according to a bunch of experts was Microservices
  10. We did a bit of research, bought Russell’s book, attended Fred’s workshop, and listened to Martin’s keynote.
  11. We used to draw our architecture like this
  12. Conceptually microservices promise a lot. A collection of single function modules with well-defined interfaces and operations. They abstract away a lot of hard networking stuff Ensure consistency of messaging and networking, and logging and alerting and monitoring Keep the functional devs focussed on features rather than chasing configuration if you like drawing neat boxes and clouds, then adding hexagons to your tool kit doesn’t seem that hard.
  13. The reality doesn’t necessarily match packaging. When you apply these ideas in the real world, it gets complicated and messy and it stops looking like the pretty pictures in the book I want to share our ongoing journey of adopting microservices, and in particular share some of the lessons we learned. Throughout the talk I’ll call out some of the principles that we adopted based on what we learned.  
  14. When I started at irexchange 3 years ago, we had acquired an inventory management system, that had been modified to demonstrate our unique B2B workflow Conceptually the system can be represented like this. It is two sided market place with Suppliers and Retailers buying groceries through the platform. Underpinning that was our Logistics and fulfilment team that managed the flow of the physical goods. The system can be represented as a a set of core business concepts that are tied together to represent the business processes
  15. When I started at irexchange 3 years ago, we had acquired an inventory management system, that had been modified to demonstrate our unique B2B workflow Conceptually the system can be represented like this. It is two sided market place with Suppliers and Retailers buying groceries through the platform. Underpinning that was our Logistics and fulfilment team that managed the flow of the physical goods. The system can be represented as a a set of core business concepts that are tied together to represent the business processes
  16. The physical architecture looked like this A monolithic 2-tier architecture running on physical hardware.   Our first goal, was to move the application into AWS and satisfy the “minimise reputational damage” business driver.
  17. Warning – a bit of AWS jargon Move the Java application into Docker, We migrated the SQL Server to RDS, and encrypted the tables   The EC2 instance sizes gave us  the required performance. The multi-AZ and Auto Scaling Groups gave us the resilience The private subnets, bastion box, ServerSide Encryption and MFA gave us our security.   There is a bit more that we did about security, but if I told you, I would have to kill you.
  18.   It all sounds very easy when I say it that fast. The reality is that it was more complicated than that.   When we started Containers and Clusters were fairly new concepts and the tooling to manage them was very immature. We had to write our scripts to manage the Docker containers within their Clusters. We lost time trying a few cluster management tools, before settling on AWS CF  ECS and ECR. They were under-featured but have improved over the last 3 years.
  19. One architecture principle that emerged is “We tend to prefer the AWS tool over custom or 3rd party tools” because they rapidly improve over time.” An example is using Cost Explorer over 3rd party SAAS cost monitoring tools. When it was first launched it was very rudimentary, but now it is quite full featured. Having established these patterns for building our Containers, we codified them into our Build scripts and templates, and shifted our focus to the second business driver “Speed to Market”
  20. As a start-up building a well-designed monolith is an excellent strategy to go fast. There is only one thing to deploy. All the functionality is one project, it is easy to trace, and easy to understand your dependencies.   In this case, the application had been designed to be lightning fast. And they achieved that by encapsulating most of the business logic into stored procedures. There was over 30 person-years of development in the application. It had a very rich feature set and was well proven.   But without a suite of tests, it was difficult to for the new team to understand the complexities of the logic, and in particular it was difficult to predict the side effects when we made a change.
  21. Our approach to this problem was to adopt a strangler vine pattern. We wanted to interact through the front-end, and to manipulate the data in the tables, but not write new business logic in the stored proc layer.   We did that by creating a set of pass through services that talked to the tables that were relevant to each Domain concept. Now we could write new business logic in a testable maintainable way, and over time deprecate and retire the existing stored proc logic.
  22. Our approach to this problem was to adopt a strangler vine pattern. We wanted to interact through the front-end, and to manipulate the data in the tables, but not write new business logic in the stored proc layer.   We did that by creating a set of pass through services that talked to the tables that were relevant to each Domain concept. Now we could write new business logic in a testable maintainable way, and over time deprecate and retire the existing stored proc logic.
  23. Then, we had a new business driver. It was June, and we needed to be in market by November in time for the Christmas demand. Accordingly we quickly ramped up to a team of 24 engineers – 3 teams of 8.   But we couldn’t wrap that many people around the codebase – The surface area was too small.   We getting significantly slower as we now had 24 people who had to understand the codebase and make changes in a coherent manner.   Our approach to this problem was to split into 3 teams that were lined up with the three Domains – Suppliers, Retailers and Network and Operations. Our thinking was that each team would be able to focus on rapidly delivering features for their customer segment.
  24. Then, we had a new business driver. It was June, and we needed to be in market by November in time for the Christmas demand. Accordingly we quickly ramped up to a team of 24 engineers – 3 teams of 8.   But we couldn’t wrap that many people around the codebase – The surface area was too small.   We getting significantly slower as we now had 24 people who had to understand the codebase and make changes in a coherent manner.   Our approach to this problem was to split into 3 teams that were lined up with the three Domains – Suppliers, Retailers and Network and Operations. Our thinking was that each team would be able to focus on rapidly delivering features for their customer segment.
  25. Architecturally, we created three new Clusters of related Domain services. Each team had their own Environment which was complete set of all of the infrastructure and Services and could work in parallel extending the functionality in their Domain.  
  26.   Firstly our AWS costs doubled over the month. It turns out there were three related reasons. It was easy for the teams to spin up environments – so they did. But no-one was spinning them down. Secondly we had over spec’d some of the instances and had were paying for processing power that we didn’t need. And thirdly, we hadn’t factored running cost into some of our designs, and had built and expensive solution.   We initially solved this by borrowing some open-source scripts from REA to turn stuff off.   Out of this experience we emerged a few more principles.  
  27. One architecture principle that emerged is “We tend to prefer the AWS tool over custom or 3rd party tools” because they rapidly improve over time.” An example is using Cost Explorer over 3rd party SAAS cost monitoring tools. When it was first launched it was very rudimentary, but now it is quite full featured. Having established these patterns for building our Containers, we codified them into our Build scripts and templates, and shifted our focus to the second business driver “Speed to Market”
  28. As well, we elevated running cost as a first-class citizen in our design discussions. Which resulted in principle 4:
  29. Finally we moved to Gorillastack and used that tool to manage our environments.
  30. So now, when you had deployed a change to a service, you had to deploy the Infrastructure first. Every single time. This made deployment duration longer. Within a team if we had multiple changes to deploy,  we had to coordinate all of those changes and test that there were no configuration issues. Because deployments took a long time and required a fair amount of confirmation testing we started having to batch changes. This meant that we were getting slower.   We were holding changes for up to a week or a fortnight and deploying large chunks of functionality at a time. These large batch sizes meant that when something went wrong in Production we took longer to diagnose the root cause because there was more new code to examine.   Each Service was well written, with Unit and Contract tests and good automation, but in the collective environment it was getting harder to understand the dependencies as 20+ Engineers made simultaneous changes.   One answer was to the situation, was to split the infrastructure from being associated with the Cluster to being associated with each service. We called this Atomic Deployments and spend considerable time refactoring the deployment scripts to allow us to deploy and individual service and its associated infrastructure services in in one smaller deployment.  
  31.  Chasing variations between environments became more common and took longer and longer.   The final nail in our microservices dream came when we realised that although we had the three clear business Domains, the actual business processes that we were codifying crossed the domain boundaries.   As an example, to calculate the final price of a product for a specific customer, you needed to know who the customer was, which state they were in, what promotions they had access to, what else they had ordered, what the product was, which state it was coming from, and a bunch of other information.   So to determine Product price we needed changes in multiple Services across the multiple teams. Now we were batching changes as we waited for other teams to completed their part of the business feature. This was resulting in less frequent, even larger deployments.    It was all getting very hard and the deadline was looming. And our cash reserves were decreasing!  
  32. Actually skipping forward two years – it’s a very different situation now. We successfully achieved that deadline and many more since Last month we deployed changes to Production 55 times (roughly 2 a day) In that month we had three (low severity defects) Each one was detected and resolved in less than 30 minutes. Our average Cycle Time on a new Story is about a day. And no one works long hours or on the weekends   So how did we get there?   Firstly we made the team smaller That change forced us to focus on prioritising Value, and reduced the Comms overhead and reduced the dependencies We moved all of our Configuration into Parameter store and refactored our build pipelines to be able to deploy a Service or Infrastructure in a more consistent decoupled fashion that minimised the occurrences of environment mismatches   And most importantly, we realised that our Domain model idea was wrong. We weren’t building a bunch of loosely coupled microservices that were all small single-function modules   We had a bunch of larger Domain services that were overlaid with a set of business processes that touched all of those core services. Those business processes were instantiated as a collection of Lambdas and Queues, Streams and Messages, and yes Single Function microservices. Those processes were encapsulated in the Environment configuration, and in the infrastructure settings.
  33. We had a Pricing service – It was big and we broke it up But every time there was a Pricing business change we found that we had change every single pricing microservice
  34. A lot of those business processes are synchronous. Most are short-running and bursty. Some are long-running Some are scheduled batch jobs They all leverage the the Domain primitives.
  35. There are bunch of services and infrastructure and configuration that encapsulate our business processes A lot of those business processes are synchronous. Some are long-running Some are short-running and bursty. Some are scheduled batch jobs They all leverage the the Domain primitives.   Our architecture doesn’t look like this:
  36. A lot of those business processes are synchronous. Most are short-running and bursty. Some are long-running Some are scheduled batch jobs They all leverage the the Domain primitives.   Our architecture doesn’t look like this:
  37. It looks a lot like the monolith that we started with:   I think that you could describe it as a distributed monolith And that’s a good thing, because that is what we needed.