Microservices è una delle buzzword del momento. Sembra quasi che un'architettura a microservices sia fondamentale. È veramente così? Faremo un tortuoso viaggio tra le buzzword del momento cercando di districarci tra cosa è bene e cosa è meno bene, ma soprattutto perché. Obiettivo è quello di comprendere quali sono i limiti di certe scelte architetturali e quali gli errori da non commettere. Il tutto nell'ottica di garantire ai nostri sistemi 'lunga vita e prosperità' (cit.)
Microservices architecture is it the right choice to design long-living syste...Mauro Servienti
Microservices all the thing! they say. Nowadays it seems that if architectures are not microservices based they are not worth the name. Is it really true? Do we really need a (micro)services based architecture?
We should design our systems with longevity, manutenability, and evolution simplicity in mind. Not hype. Long living systems are our primary goal. We'll analyze most common errors and we'll see how architecture can be a game changer in systems design.
Join Mauro in a journey that aims to disclose what it means to build a distributed system based on a (micro)services oriented architecture.
All our aggregates are wrong (ExploreDDD 2018)Mauro Servienti
It always starts well. At first glance the requirements seem straightforward, and implementation proceeds without hiccups. Then the requirements start to get more complex, and you find yourself in a predicament, introducing technical shortcuts that smell for the sake of delivering the new feature on schedule. In this talk, we'll analyze what appears to be a straightforward e-commerce shopping cart. We'll then go ahead and add a few more use-cases that make it more complex and see how it can negatively impact the overall design. Finally, we'll focus our attention to the business needs of these requirements and see how it can shed light on the correct approach to designing the feature. Walk away with a new understanding on how to take requirements apart to build the right software.
All our aggregates are wrong @ NDC Copenhagen 2019Mauro Servienti
It always starts well. At first glance the requirements seem straightforward, and implementation proceeds without hiccups. Then the requirements start to get more complex, and you find yourself in a predicament, introducing technical shortcuts that smell for the sake of delivering the new feature on schedule.
In this talk, we’ll analyze what appears to be a straightforward e-commerce shopping cart. We’ll then go ahead and add a few more use-cases that make it more complex and see how it can negatively impact the overall design. Finally, we’ll focus our attention to the business needs of these requirements and see how it can shed light on the correct approach to designing the feature. Walk away with a new understanding on how to take requirements apart to build the right software.
Introduction to Demand
We buy products for their utility- the pleasure, usefulness, or satisfaction they give us.
What is your utility for the following products? (Measure your utility by the maximum amount you would be willing to pay for this product)Do we have the same utility for these goods?Introduction to Demand
One reason the demand curve slopes downward is due to diminish marginal utility
The principle of diminishing marginal utility says that our additional satisfaction tends to go down as we consume more and more units.
To make a buying decision, we consider whether the satisfaction we expect to gain is worth the money we must give up.
Changes in Demand
Demand Curves can also shift in response to the following factors:
Buyers (# of): changes in the number of consumers
Income: changes in consumers' income
Tastes: changes in preference or popularity of product/ service
Expectations: changes in what consumers expect to happen in the future
Related goods: compliments and substitutes.
BITER: factors that shift the demand curve
Changes in Demand
Prices of related goods affect on demand
Substitute goods a substitute is a product that can be used in the place of another.
The price of the substitute good and demand for the other good are directly related
For example, Coke Price
Pepsi Demand
Complementary goods a compliment is a good that goes well with another good.
When goods are complements, there is an inverse relationship between the price of one and the demand for the other
For example, Peanut Butter Price
Jam Demand
Introduction to Supply
Supply refers to the various quantities of a good or service that producers are willing to sell at all possible market prices.
Supply can refer to the output of one producer or to the total output of all producers in the market (market supply).Introduction to Supply
• A supply schedule can be shown as points on a graph.
• The graph lists prices on the vertical axis and quantities supplied on the horizontal axis.
• Each point on the graph shows how many units of the product or service a producer (or group of producers) would willing sell at a particular price.
• The supply curve is the line that connects these points.
Introduction to Supply
As the price for a good rises, the quantity supplied rises and the quantity demanded falls. As the price falls, the quantity supplied falls and the quantity demanded rises.
The law of supply holds that producers will normally offer more for sale at higher prices and less at lower prices.Introduction to Supply
• The reason the supply curve slopes upward is due to costs and profit.
• Producers purchase resources and use them to produce output.
• Producers will incur costs as they bid resources away from their alternative uses.Introduction to Supply
• Businesses provide goods and services hoping to make a profit.
Profit is the money a business has left over after it covers its costs.
Businesses try to sell at prices high enough to cover it
The document describes Nile, an e-commerce sales analytics tool that can record historical sales data, track daily/monthly sales volumes by category, compare month-to-month product revenues, and view product popularity by location in real-time. It uses Kafka to ingest order and product catalog data, HBase for the speed layer, and Hive for batch processing to join orders with products and flatten many-to-many category relationships. The tool precomputes views in HBase to reduce hotspotting and allow querying sales by product and date.
Lecture 2 Supply, Demand, and Market Equilibrium.pptAhmedFathi516451
This document provides an introduction to the economic concepts of supply, demand, and market equilibrium. It includes definitions of demand and supply, how to represent them graphically with demand and supply curves, and how the interaction of supply and demand determines the equilibrium price in a market. Key points covered include: the downward slope of the demand curve and upward slope of the supply curve; factors that can cause a shift in demand or supply; how surpluses and shortages occur at prices above or below the equilibrium price; and how markets work to eliminate surpluses and shortages over time through price adjustments.
This document provides an introduction to the economic concepts of supply, demand, and market equilibrium. It includes definitions of demand and supply, how to represent them graphically with demand and supply curves, and factors that can cause the curves to shift. The key points covered are:
- Demand is based on willingness and ability to purchase, represented by a downward sloping demand curve. The curve can shift from changes in income, tastes, expectations, or prices of related goods.
- Supply is based on willingness to produce and sell at different price levels, represented by an upward sloping supply curve. The curve can shift from changes in costs of production, technology, or prices of other goods.
- Where the demand and
This document provides an introduction to supply, demand, and market equilibrium through a PowerPoint presentation. It defines demand and supply, shows how demand and supply schedules can be represented graphically with demand and supply curves, and explains how the curves can shift due to various factors. It also introduces the concept of market equilibrium where quantity demanded equals quantity supplied, resulting in a market clearing price.
Microservices architecture is it the right choice to design long-living syste...Mauro Servienti
Microservices all the thing! they say. Nowadays it seems that if architectures are not microservices based they are not worth the name. Is it really true? Do we really need a (micro)services based architecture?
We should design our systems with longevity, manutenability, and evolution simplicity in mind. Not hype. Long living systems are our primary goal. We'll analyze most common errors and we'll see how architecture can be a game changer in systems design.
Join Mauro in a journey that aims to disclose what it means to build a distributed system based on a (micro)services oriented architecture.
All our aggregates are wrong (ExploreDDD 2018)Mauro Servienti
It always starts well. At first glance the requirements seem straightforward, and implementation proceeds without hiccups. Then the requirements start to get more complex, and you find yourself in a predicament, introducing technical shortcuts that smell for the sake of delivering the new feature on schedule. In this talk, we'll analyze what appears to be a straightforward e-commerce shopping cart. We'll then go ahead and add a few more use-cases that make it more complex and see how it can negatively impact the overall design. Finally, we'll focus our attention to the business needs of these requirements and see how it can shed light on the correct approach to designing the feature. Walk away with a new understanding on how to take requirements apart to build the right software.
All our aggregates are wrong @ NDC Copenhagen 2019Mauro Servienti
It always starts well. At first glance the requirements seem straightforward, and implementation proceeds without hiccups. Then the requirements start to get more complex, and you find yourself in a predicament, introducing technical shortcuts that smell for the sake of delivering the new feature on schedule.
In this talk, we’ll analyze what appears to be a straightforward e-commerce shopping cart. We’ll then go ahead and add a few more use-cases that make it more complex and see how it can negatively impact the overall design. Finally, we’ll focus our attention to the business needs of these requirements and see how it can shed light on the correct approach to designing the feature. Walk away with a new understanding on how to take requirements apart to build the right software.
Introduction to Demand
We buy products for their utility- the pleasure, usefulness, or satisfaction they give us.
What is your utility for the following products? (Measure your utility by the maximum amount you would be willing to pay for this product)Do we have the same utility for these goods?Introduction to Demand
One reason the demand curve slopes downward is due to diminish marginal utility
The principle of diminishing marginal utility says that our additional satisfaction tends to go down as we consume more and more units.
To make a buying decision, we consider whether the satisfaction we expect to gain is worth the money we must give up.
Changes in Demand
Demand Curves can also shift in response to the following factors:
Buyers (# of): changes in the number of consumers
Income: changes in consumers' income
Tastes: changes in preference or popularity of product/ service
Expectations: changes in what consumers expect to happen in the future
Related goods: compliments and substitutes.
BITER: factors that shift the demand curve
Changes in Demand
Prices of related goods affect on demand
Substitute goods a substitute is a product that can be used in the place of another.
The price of the substitute good and demand for the other good are directly related
For example, Coke Price
Pepsi Demand
Complementary goods a compliment is a good that goes well with another good.
When goods are complements, there is an inverse relationship between the price of one and the demand for the other
For example, Peanut Butter Price
Jam Demand
Introduction to Supply
Supply refers to the various quantities of a good or service that producers are willing to sell at all possible market prices.
Supply can refer to the output of one producer or to the total output of all producers in the market (market supply).Introduction to Supply
• A supply schedule can be shown as points on a graph.
• The graph lists prices on the vertical axis and quantities supplied on the horizontal axis.
• Each point on the graph shows how many units of the product or service a producer (or group of producers) would willing sell at a particular price.
• The supply curve is the line that connects these points.
Introduction to Supply
As the price for a good rises, the quantity supplied rises and the quantity demanded falls. As the price falls, the quantity supplied falls and the quantity demanded rises.
The law of supply holds that producers will normally offer more for sale at higher prices and less at lower prices.Introduction to Supply
• The reason the supply curve slopes upward is due to costs and profit.
• Producers purchase resources and use them to produce output.
• Producers will incur costs as they bid resources away from their alternative uses.Introduction to Supply
• Businesses provide goods and services hoping to make a profit.
Profit is the money a business has left over after it covers its costs.
Businesses try to sell at prices high enough to cover it
The document describes Nile, an e-commerce sales analytics tool that can record historical sales data, track daily/monthly sales volumes by category, compare month-to-month product revenues, and view product popularity by location in real-time. It uses Kafka to ingest order and product catalog data, HBase for the speed layer, and Hive for batch processing to join orders with products and flatten many-to-many category relationships. The tool precomputes views in HBase to reduce hotspotting and allow querying sales by product and date.
Lecture 2 Supply, Demand, and Market Equilibrium.pptAhmedFathi516451
This document provides an introduction to the economic concepts of supply, demand, and market equilibrium. It includes definitions of demand and supply, how to represent them graphically with demand and supply curves, and how the interaction of supply and demand determines the equilibrium price in a market. Key points covered include: the downward slope of the demand curve and upward slope of the supply curve; factors that can cause a shift in demand or supply; how surpluses and shortages occur at prices above or below the equilibrium price; and how markets work to eliminate surpluses and shortages over time through price adjustments.
This document provides an introduction to the economic concepts of supply, demand, and market equilibrium. It includes definitions of demand and supply, how to represent them graphically with demand and supply curves, and factors that can cause the curves to shift. The key points covered are:
- Demand is based on willingness and ability to purchase, represented by a downward sloping demand curve. The curve can shift from changes in income, tastes, expectations, or prices of related goods.
- Supply is based on willingness to produce and sell at different price levels, represented by an upward sloping supply curve. The curve can shift from changes in costs of production, technology, or prices of other goods.
- Where the demand and
This document provides an introduction to supply, demand, and market equilibrium through a PowerPoint presentation. It defines demand and supply, shows how demand and supply schedules can be represented graphically with demand and supply curves, and explains how the curves can shift due to various factors. It also introduces the concept of market equilibrium where quantity demanded equals quantity supplied, resulting in a market clearing price.
Tyga Mall is an e-commerce marketplace that allows vendors to list and sell products with minimal effort and costs. Vendors can list items with only basic required information like name, price, description and images. Tyga Mall handles all other aspects like website development, marketing, payments, customer service and delivery. The marketplace charges vendors a commission fee on successful sales and deducts any delivery costs from the vendor balance. Payouts to vendors occur every 15th and 30th of each month depending on when orders were placed. Tyga Mall aims to help vendors maximize sales through free marketing support and listing popular products prominently on the site.
The document discusses a sales report available on Paytm Mall that provides order details for a selected time period. It explains that the report allows sellers to easily manage sales by downloading all order information in a single Excel file. The document then outlines how to download the report by selecting a date range and clicking download. Finally, it describes the various headers in the report which provide order and customer details like product information, order status, payment amounts, shipping tracking, and customer address.
This document provides an introduction to demand and supply, including key concepts such as:
- Markets connect buyers and sellers of goods and services. Common types of markets include goods, labor, and stock markets.
- Demand refers to how much of a good or service consumers are willing and able to purchase at different prices. The demand curve slopes downward, as consumers demand more of a good at lower prices. Changes in factors like income can shift the demand curve.
- Supply refers to how much of a good or service producers are willing to provide at different prices. The supply curve slopes upward, as producers supply more of a good at higher prices. Changes in costs and other factors can shift the supply curve
This document provides information about Paytm Mall sales reports including what a sales report is, how to download one, and an explanation of the headers included in a sales report. Specifically, it explains that a sales report contains order details in an Excel file for a selected date range up to 31 days. It outlines the steps to download a report and describes the various order details and statuses that are included as columns in the report.
Saskia Demel / Michael Munder: How to Kick-Start Your CRM With Clickstream Da...Heroes of CRM Conference
There is no shortcut for customer happiness. But Saskia Demel and Michael Munder from Porta know how to make a real impact by tracking clickstream data in a smart and lean way.
The document discusses supply and demand theory. It explains that supply and demand curves slope upward and downward respectively, showing that quantity supplied increases with price while quantity demanded decreases with price. A change in price results in movement along the existing curves, while other factors like income, tastes, technology, and costs can cause the curves to shift left or right. The interaction of supply and demand determines market equilibrium price and quantity.
This document outlines an agenda for a 3-day Google Shopping virtual summit hosted by CPC Strategy. Day 1 focuses on crafting a Google Shopping strategy to drive direct ROI growth. Sessions will cover optimizing product data quality, improving product titles, and leveraging custom labels. Day 2 covers using competitor data to improve performance. Day 3 focuses on boosting performance through customer reviews in paid channels. The summit provides resources and allows participants to ask questions.
CPC Strategy - Google Shopping Virtual summit 2016 Duy, Vo Hoang
The document summarizes key points from a 3-day Google Shopping virtual summit hosted by CPC Strategy. Day 1 focuses on crafting a Google Shopping strategy to drive direct ROI growth. It provides an overview of the session, including the speaker's experience and topics to be covered. These include basic product data quality, improving product titles for search intent, manipulating custom labels for bidding efficiency, and targeting Google Shopping campaigns.
This document provides an overview and examples of using MongoDB aggregations. It begins with introductions to MongoDB basics like documents, collections, and simple queries. The bulk of the document focuses on the MongoDB aggregation pipeline, explaining what it is, common stages like $match, $group, $lookup, and examples of queries using those stages like filtering orders by postcode, grouping orders by type, joining products and brands with $lookup. It provides examples of more advanced techniques like lookups with sub-pipelines, grouping, dates, and exercises for readers to try themselves.
SaaSFest 2015 - "Monetization Matters" by Patrick Campbell of Price Intellige...Price Intelligently
Marketers focus almost exclusively on acquisition as the main lever for growth. While intuitive, Patrick Campbell - CEO of Price Intelligently - walks through why your acquisition strategy is actually the least effective tool for spurring growth in your subscription business.
Patrick also provides a specific framework for quantifying your buyer personas in an effort to properly build out your SaaS pricing strategy.
SEO involves optimizing a website to rank higher organically in search engines through on-page and off-page factors over the long term. PPC allows instant traffic through paid search ads but costs money per click. While SEO has no guarantees and takes more time and effort, it can provide higher trust and conversion rates in the long run compared to PPC which is easier to implement and track but costs money with no guarantees.
The document discusses the supply and demand model. It outlines key assumptions of the model including rational thinking and ceteris paribus. It defines supply as the quantity of a good that sellers are willing and able to provide at a given price. The law of supply states that, ceteris paribus, quantity supplied increases with price and decreases with lower prices. Factors that can shift the supply curve include: the number of sellers, input prices, prices of related goods, productivity, and expectations about future prices. A shift reflects a change in supply not due to price, while a movement along the curve shows the response of quantity supplied to price changes.
The 4 P's of Marketing refers to the four elements that make up a marketing mix - Product, Price, Place, and Promotion. All four elements are essential to the success of a marketing plan. The Product element refers to the benefits, quality, features, design, and packaging of a product. Price considers the costs to produce and market a product as well as different pricing strategies. Place is about how and where a product will be distributed and sold. Promotion covers the various ways of communicating the benefits of a product to the target market, such as advertising, public relations, and word-of-mouth marketing. An effective marketing mix balances each of the 4 P's to best reach the target market.
The document appears to be a study guide listing questions related to marketing concepts paired with dollar amounts. It includes questions about the 4 P's of marketing (Product, Price, Place, Promotion), as well as marketing mixed and trends. Each question is associated with a dollar amount ranging from $100 to $500.
How to Design Retail Recommendation Engines with Neo4jNeo4j
Recommendations are at the core of digital transformation in retail today. Whether you’re building features such as product recommendations, promotion recommendations, personalized customer experience, or re-imagining your supply chain to meet customer demands for same day delivery — you’re facing challenges that require the ability to leverage connections from many different data sources, in real-time. There’s no better technology to meet these challenges than a native graphDB technology such as Neo4j.
1) The document analyzes and compares the supply chains of two Indian FMCG companies, Haldiram's and Bikano, by collecting sales data from various retailers.
2) It finds that on average it takes Haldiram's products 3-4 months to travel from supplier to customer, while it takes Bikano's products 2-3 months, indicating Haldiram's has a longer supply chain.
3) When comparing fast and slow moving products for Haldiram's, it finds their aloo bhujia product moves faster than their moong dal through unorganized retailers, but moong dal moves faster in Haldiram's organized retail stores.
Demand and Supply Analysis (Economics) Lecture NotesFellowBuddy.com
FellowBuddy.com is an innovative platform that brings students together to share notes, exam papers, study guides, project reports and presentation for upcoming exams.
We connect Students who have an understanding of course material with Students who need help.
Benefits:-
# Students can catch up on notes they missed because of an absence.
# Underachievers can find peer developed notes that break down lecture and study material in a way that they can understand
# Students can earn better grades, save time and study effectively
Our Vision & Mission – Simplifying Students Life
Our Belief – “The great breakthrough in your life comes when you realize it, that you can learn anything you need to learn; to accomplish any goal that you have set for yourself. This means there are no limits on what you can be, have or do.”
Like Us - https://www.facebook.com/FellowBuddycom
Enhancing the User Experience
Allowing customers to search our product catalog effectively
Enhancing this search by allowing our customers to filter products
Providing wish lists for our customers
Generating recommendations for customers based on previous purchases
Informing customers when their desired products are back in stock
Enabling social aspects such as product ratings and reviews from customers
Driving Serious Sales Using Browser Notifications | iZooto Vivek Khandelwal
Here is how e-commerce merchants can understand the bottlenecks in their conversion funnel and use browser notifications to engage users and drive conversions - at scale.
Welcome to the (state) machine @ ExploreDDD 2019Mauro Servienti
Stateless all the thing, they say. In the last few years we’ve been brainwashed: design stateless systems, otherwise they cannot scale, they cannot be highly available, and they are hard to maintain and evolve. In a nutshell stateful is bad. However complex software systems need to do collaborative processing, that is stateful by definition. Stateless myth busted! Collaborative domains deal with long running business transactions and need to interact with distributed resources. The traditional distributed transactions approach, even if tempting, is a time bomb.
This is when Sagas come into play. Sagas allow to model complex collaborative domains without the need for distributed transactions and/or orchestration across multiple resources. Join Mauro on a journey that aims to disclose what sagas are, how they can be used to model a complex collaborative domain, and what role they play when it comes to designing systems with failure and eventual consistency in mind.
(It’s all right, I know where you’ve been)
Designing a ui for microservices @ .NET Day Switzerland 2019Mauro Servienti
How do we design a UI when the back-end system consists of dozens (or more) microservices? We have separation and autonomy on the back end, but on the front end this all needs to come back together. How do we stop it from turning into a mess of spaghetti code? How do we prevent simple actions from causing an inefficient torrent of web requests? Join Mauro in building a Composite UI for Microservices from scratch, using .NET Core. Walk away with a clear understanding of what Services UI Composition is and how you can architect front end to be Microservices ready.
More Related Content
Similar to Microservices and pineapple on pizza what do they have in common - dos and don'ts
Tyga Mall is an e-commerce marketplace that allows vendors to list and sell products with minimal effort and costs. Vendors can list items with only basic required information like name, price, description and images. Tyga Mall handles all other aspects like website development, marketing, payments, customer service and delivery. The marketplace charges vendors a commission fee on successful sales and deducts any delivery costs from the vendor balance. Payouts to vendors occur every 15th and 30th of each month depending on when orders were placed. Tyga Mall aims to help vendors maximize sales through free marketing support and listing popular products prominently on the site.
The document discusses a sales report available on Paytm Mall that provides order details for a selected time period. It explains that the report allows sellers to easily manage sales by downloading all order information in a single Excel file. The document then outlines how to download the report by selecting a date range and clicking download. Finally, it describes the various headers in the report which provide order and customer details like product information, order status, payment amounts, shipping tracking, and customer address.
This document provides an introduction to demand and supply, including key concepts such as:
- Markets connect buyers and sellers of goods and services. Common types of markets include goods, labor, and stock markets.
- Demand refers to how much of a good or service consumers are willing and able to purchase at different prices. The demand curve slopes downward, as consumers demand more of a good at lower prices. Changes in factors like income can shift the demand curve.
- Supply refers to how much of a good or service producers are willing to provide at different prices. The supply curve slopes upward, as producers supply more of a good at higher prices. Changes in costs and other factors can shift the supply curve
This document provides information about Paytm Mall sales reports including what a sales report is, how to download one, and an explanation of the headers included in a sales report. Specifically, it explains that a sales report contains order details in an Excel file for a selected date range up to 31 days. It outlines the steps to download a report and describes the various order details and statuses that are included as columns in the report.
Saskia Demel / Michael Munder: How to Kick-Start Your CRM With Clickstream Da...Heroes of CRM Conference
There is no shortcut for customer happiness. But Saskia Demel and Michael Munder from Porta know how to make a real impact by tracking clickstream data in a smart and lean way.
The document discusses supply and demand theory. It explains that supply and demand curves slope upward and downward respectively, showing that quantity supplied increases with price while quantity demanded decreases with price. A change in price results in movement along the existing curves, while other factors like income, tastes, technology, and costs can cause the curves to shift left or right. The interaction of supply and demand determines market equilibrium price and quantity.
This document outlines an agenda for a 3-day Google Shopping virtual summit hosted by CPC Strategy. Day 1 focuses on crafting a Google Shopping strategy to drive direct ROI growth. Sessions will cover optimizing product data quality, improving product titles, and leveraging custom labels. Day 2 covers using competitor data to improve performance. Day 3 focuses on boosting performance through customer reviews in paid channels. The summit provides resources and allows participants to ask questions.
CPC Strategy - Google Shopping Virtual summit 2016 Duy, Vo Hoang
The document summarizes key points from a 3-day Google Shopping virtual summit hosted by CPC Strategy. Day 1 focuses on crafting a Google Shopping strategy to drive direct ROI growth. It provides an overview of the session, including the speaker's experience and topics to be covered. These include basic product data quality, improving product titles for search intent, manipulating custom labels for bidding efficiency, and targeting Google Shopping campaigns.
This document provides an overview and examples of using MongoDB aggregations. It begins with introductions to MongoDB basics like documents, collections, and simple queries. The bulk of the document focuses on the MongoDB aggregation pipeline, explaining what it is, common stages like $match, $group, $lookup, and examples of queries using those stages like filtering orders by postcode, grouping orders by type, joining products and brands with $lookup. It provides examples of more advanced techniques like lookups with sub-pipelines, grouping, dates, and exercises for readers to try themselves.
SaaSFest 2015 - "Monetization Matters" by Patrick Campbell of Price Intellige...Price Intelligently
Marketers focus almost exclusively on acquisition as the main lever for growth. While intuitive, Patrick Campbell - CEO of Price Intelligently - walks through why your acquisition strategy is actually the least effective tool for spurring growth in your subscription business.
Patrick also provides a specific framework for quantifying your buyer personas in an effort to properly build out your SaaS pricing strategy.
SEO involves optimizing a website to rank higher organically in search engines through on-page and off-page factors over the long term. PPC allows instant traffic through paid search ads but costs money per click. While SEO has no guarantees and takes more time and effort, it can provide higher trust and conversion rates in the long run compared to PPC which is easier to implement and track but costs money with no guarantees.
The document discusses the supply and demand model. It outlines key assumptions of the model including rational thinking and ceteris paribus. It defines supply as the quantity of a good that sellers are willing and able to provide at a given price. The law of supply states that, ceteris paribus, quantity supplied increases with price and decreases with lower prices. Factors that can shift the supply curve include: the number of sellers, input prices, prices of related goods, productivity, and expectations about future prices. A shift reflects a change in supply not due to price, while a movement along the curve shows the response of quantity supplied to price changes.
The 4 P's of Marketing refers to the four elements that make up a marketing mix - Product, Price, Place, and Promotion. All four elements are essential to the success of a marketing plan. The Product element refers to the benefits, quality, features, design, and packaging of a product. Price considers the costs to produce and market a product as well as different pricing strategies. Place is about how and where a product will be distributed and sold. Promotion covers the various ways of communicating the benefits of a product to the target market, such as advertising, public relations, and word-of-mouth marketing. An effective marketing mix balances each of the 4 P's to best reach the target market.
The document appears to be a study guide listing questions related to marketing concepts paired with dollar amounts. It includes questions about the 4 P's of marketing (Product, Price, Place, Promotion), as well as marketing mixed and trends. Each question is associated with a dollar amount ranging from $100 to $500.
How to Design Retail Recommendation Engines with Neo4jNeo4j
Recommendations are at the core of digital transformation in retail today. Whether you’re building features such as product recommendations, promotion recommendations, personalized customer experience, or re-imagining your supply chain to meet customer demands for same day delivery — you’re facing challenges that require the ability to leverage connections from many different data sources, in real-time. There’s no better technology to meet these challenges than a native graphDB technology such as Neo4j.
1) The document analyzes and compares the supply chains of two Indian FMCG companies, Haldiram's and Bikano, by collecting sales data from various retailers.
2) It finds that on average it takes Haldiram's products 3-4 months to travel from supplier to customer, while it takes Bikano's products 2-3 months, indicating Haldiram's has a longer supply chain.
3) When comparing fast and slow moving products for Haldiram's, it finds their aloo bhujia product moves faster than their moong dal through unorganized retailers, but moong dal moves faster in Haldiram's organized retail stores.
Demand and Supply Analysis (Economics) Lecture NotesFellowBuddy.com
FellowBuddy.com is an innovative platform that brings students together to share notes, exam papers, study guides, project reports and presentation for upcoming exams.
We connect Students who have an understanding of course material with Students who need help.
Benefits:-
# Students can catch up on notes they missed because of an absence.
# Underachievers can find peer developed notes that break down lecture and study material in a way that they can understand
# Students can earn better grades, save time and study effectively
Our Vision & Mission – Simplifying Students Life
Our Belief – “The great breakthrough in your life comes when you realize it, that you can learn anything you need to learn; to accomplish any goal that you have set for yourself. This means there are no limits on what you can be, have or do.”
Like Us - https://www.facebook.com/FellowBuddycom
Enhancing the User Experience
Allowing customers to search our product catalog effectively
Enhancing this search by allowing our customers to filter products
Providing wish lists for our customers
Generating recommendations for customers based on previous purchases
Informing customers when their desired products are back in stock
Enabling social aspects such as product ratings and reviews from customers
Driving Serious Sales Using Browser Notifications | iZooto Vivek Khandelwal
Here is how e-commerce merchants can understand the bottlenecks in their conversion funnel and use browser notifications to engage users and drive conversions - at scale.
Similar to Microservices and pineapple on pizza what do they have in common - dos and don'ts (20)
Welcome to the (state) machine @ ExploreDDD 2019Mauro Servienti
Stateless all the thing, they say. In the last few years we’ve been brainwashed: design stateless systems, otherwise they cannot scale, they cannot be highly available, and they are hard to maintain and evolve. In a nutshell stateful is bad. However complex software systems need to do collaborative processing, that is stateful by definition. Stateless myth busted! Collaborative domains deal with long running business transactions and need to interact with distributed resources. The traditional distributed transactions approach, even if tempting, is a time bomb.
This is when Sagas come into play. Sagas allow to model complex collaborative domains without the need for distributed transactions and/or orchestration across multiple resources. Join Mauro on a journey that aims to disclose what sagas are, how they can be used to model a complex collaborative domain, and what role they play when it comes to designing systems with failure and eventual consistency in mind.
(It’s all right, I know where you’ve been)
Designing a ui for microservices @ .NET Day Switzerland 2019Mauro Servienti
How do we design a UI when the back-end system consists of dozens (or more) microservices? We have separation and autonomy on the back end, but on the front end this all needs to come back together. How do we stop it from turning into a mess of spaghetti code? How do we prevent simple actions from causing an inefficient torrent of web requests? Join Mauro in building a Composite UI for Microservices from scratch, using .NET Core. Walk away with a clear understanding of what Services UI Composition is and how you can architect front end to be Microservices ready.
Welcome to the (state) machine @ Xe One Day Enterprise ApplicationsMauro Servienti
Ultimamente ci hanno stressato come non mai che stateful è il male. Tutto deve essere stateless, altrimenti non scala, non può essere altamente disponibile, ed è complesso da manutenere ed evolvere. Nonostante questo i sistemi software complessi, essendo basati su processi collaborativi, sono per natura stateful. I processi collaborativi, noti anche come long running business transactions, necessitano di interagiscono con risorse distribuite. L’approccio tradizionale basato su transazioni distribuite, anche se allettante, è una bomba pronta ad esplodere.
Pane quotidiano per le Saghe. Le Saghe consentono di modellare sistemi complessi senza la necessità di transazioni distribuite e coordinamento esterno. Vedremo cosa sono le Saghe, come possono essere usate per modellare domini complessi, e che ruolo giocano quando progettiamo sistemi basati sui concetti di “design for failures” e “eventual consistency”
(It’s all right, I know where you’ve been)
Be like water, my friend @ Agile for Innovation 2019Mauro Servienti
L’acqua è quasi inarrestabile, basta un pertugio e si propaga. Basta un po’ di pressione e con facilità il pertugio diventa una voragine e lascia spazio ad una piena. La conoscenza e l’esperienza in un team possono essere come l’acqua. Il sapere deve poter scorrere senza freni, con solo degli argini che lo guidino al fine di evitare un’inondazione.
È possibile strutturare un’organizzazione al fine di garantire la diffusione del sapere? Quali sono i processi e gli strumenti che possiamo mettere in campo per essere certi che conoscenza ed esperienza siano diffuse, ma anche che non vi sia un’inondazione?
Lasciatevi trasportare da Mauro nei meandri di Particular Software, per scoprire come una realtà “dispersa” su 17 time zone gestisce collaborazione e condivisione del sapere. Analizzeremo sia i processi, che ci siamo creati, che gli strumenti digitali che usiamo quotidianamente.
Titles, abstracts, and bio matter... oh my! @ Global Diversity CFP Day 2019Mauro Servienti
Sei uno studente che deve presentare una tesi? Un manager che deve presentare un report ai colleghi? Un esperto che deve presentare i risultati di uno studio ad una conferenza? O semplicemente avresti voglia di parlare al mondo di ciò che ti appassiona ma non sai da dove cominciare?
Living organizations, particular software @ do IT Better ParmaMauro Servienti
Siamo così abituati ad organizzazioni basate sul tradizionale organigramma che diamo per scontato che sia l'unica opzione.
Un approccio differente è possibile?
Quando sono entrato in Particular, era un'organizzazione tradizionale, sebbene distribuita. Avevamo manager e una gerarchia. Un anno dopo la decisione di rivoluzionare tutto. La miglior decisione di sempre. Intraprenderemo un viaggio che ci permetterà di scoprire che un modello organizzativo diverso è possibile, che un processo decisionale dall'alto verso il basso non è l'unica opzione e che possiamo organizzare la vita lavorativa intorno a quella privata in funzione di un ottimo life-work balance.
Welcome to the (state) machine @ Crafted SoftwareMauro Servienti
Stateless all the thing, they say. In the last few years we’ve been brainwashed: design stateless systems, otherwise they cannot scale, they cannot be highly available, and they are hard to maintain and evolve. In a nutshell stateful is bad. However complex software systems need to do collaborative processing, that is stateful by definition. Stateless myth busted! Collaborative domains deal with long business transactions and need to interact with distributed resources. The traditional distributed transactions approach, even if tempting, is a time bomb. This is when Sagas come into play. Sagas allow to model complex collaborative domains without the need for distributed transactions and/or orchestration across multiple resources. Join Mauro on a journey that aims to disclose what sagas are, how they can be used to model a complex collaborative domain, and what role they play when it comes to designing systems with failure and eventual consistency in mind. (It’s all right, I know we’re you’ve been)
PO is dead, long live the PO - Italian Agile Day 2018Mauro Servienti
Cosa succederebbe se i prodotti non fossero gestiti dai manager? O addirittura, cosa se i manager non ci fossero proprio? Chi si prenderebbe la responsabilità di definire la priorità nel backlog? In Particular Software non c’è una struttura gerarchica. La gestione dei prodotti, intesa come vera e propria product ownership, è responsabilità di tutti. Sembra quasi che gli internati siano anche i gestori del manicomio. Non è proprio distante dalla realtà. Oggigiorno sempre più aziende si stanno orientando verso strutture organizzative fluide. Che cosa si può fare per abilitare chiunque a prendere decisioni a qualsiasi livello? C’è un modo per condividere il processo decisionale? Guarderemo come è strutturata Particular Software al fine di abilitare tutto ciò. Analizzeremo come vengono risolti i problemi e quali processi e strumenti utilizziamo per prendere decisioni. Tutto senza infermieri, ooops, senza manager.
Design a UI for your Microservices @ Do IT BetterMauro Servienti
How do we design a UI when the back-end system consists of dozens (or more) microservices? We have separation and autonomy on the back end, but on the front end this all needs to come back together. How do we stop it from turning into a mess of spaghetti code? How do we prevent simple actions from causing an inefficient torrent of web requests? Join Mauro in building a Composite UI for Microservices from scratch, using .NET Core. Walk away with a clear understanding of what Services UI Composition is and how you can architect front end to be Microservices ready.
How do we design a UI when the back-end system consists of dozens (or more) microservices? We have separation and autonomy on the back end, but on the front end this all needs to come back together. How do we stop it from turning into a mess of spaghetti code? How do we prevent simple actions from causing an inefficient torrent of web requests? Join Mauro in building a Composite UI for Microservices from scratch, using .NET Core. Walk away with a clear understanding of what Services UI Composition is and how you can architect front end to be Microservices ready.
Cosa succederebbe se i prodotti non fossero gestiti dai manager? O addirittura, cosa se i manager non ci fossero proprio? Chi si prenderebbe la responsabilità di definire la priorità nel backlog? In Particular Software non c’è una struttura gerarchica. La gestione dei prodotti, intesa come vera e propria product ownership, è responsabilità di tutti. Sembra quasi che gli internati siano anche i gestori del manicomio. Non è proprio distante dalla realtà. Oggigiorno sempre più aziende si stanno orientando verso strutture organizzative fluide. Che cosa si può fare per abilitare chiunque a prendere decisioni a qualsiasi livello? C’è un modo per condividere il processo decisionale? Guarderemo come è strutturata Particular Software al fine di abilitare tutto ciò. Analizzeremo come vengono risolti i problemi e quali processi e strumenti utilizziamo per prendere decisioni. Tutto senza infermieri, ooops, senza manager.
Shipping code is not the problem, deciding what to ship it is!Mauro Servienti
This document discusses an organization's approach to prioritizing work and developing software. It emphasizes focusing on solving clear problems rather than executing on estimates or deadlines. Work is organized into buckets or strategies, each with a dedicated squad prioritizing issues. Issues go through an intake process to clearly define the problem before being selected for a cross-functional task force to implement a solution. The goal is for squads to proactively address problems rather than reactively execute work.
GraphQL - Where are you from? Where are you going?Mauro Servienti
GraphQL, inventato da Facebook per risolvere un problema molto specifico, è diventato uno standard. Le applicazioni client lo utilizzano per leggere e manipolare i dati esposti dai server back-end. È così flessibile che recentemente GitHub l'ha adottata per tutte le sue API. Il paradigma è semplice e tuttavia potente tale da consentire la manipolazione flessibile e la loro composizione da molte fonti diverse. Mauro offre in questo intervento un'introduzione a GraphQL, partendo da una breve storia e poi analizzando come GraphQL risolva i tipici problemi in cui i progettisti API e i loro consumer si possono imbattere.
Dall'idea al deploy un lungo viaggio che passa per git flow e semverMauro Servienti
Parliamo tanto di DevOps e ci concentriamo sui tool senza soffermarci a pensare che DevOps è principalmente una metodologia. Lo scopo è rendere l'intera filiera il più fluida e lineare possibile, rimuovendo impedimenti e cercando di prevenire e anticipare problemi.
Possiamo costruire tutto il processo di sviluppo, partendo dai vagiti iniziali del backlog per finire che il deploy fisico in ottica DevOps? Il processo ha impatto sulle scelte tecniche? Pratiche come SemVer e GitFlow hanno invece un impatto sul backlog?
Analizzeremo l'intero processo di sviluppo di Particular Software, dalla gestione del backlog al deploy automatico in produzione, con lo scopo di evidenziare come pratiche che sembrano disconnesse abbiano invece impatto su tutta la filiera.
This document discusses different approaches to designing a user interface for a microservices architecture. It begins by proposing a domain model decomposition with individual services owning pieces of product data. However, this poses issues for users who need an aggregated view. An alternative presented is to have individual services cache normalized data and compose a view model at the edge. Later approaches incorporate client-side messaging, hosting the composition engine in MVC, and using view components to give services more ownership over vertical slices of the UI. The key takeaways are that the UI structure can be defined at the edge while still keeping domain responsibilities clear across services.
The road to a Service Oriented Architecture is paved with messagesMauro Servienti
One of the options on the table when implementing a Service Oriented Architecture (SOA), or the communication style across multiple microservices, is based on messages and a service bus. This talk will drive you through the basic SOA building blocks, introduce message based architectures, and will connect the dots between technology and architectural principles through some samples using NServiceBus.
The document discusses how a service-oriented architecture is built on a message-based infrastructure and outlines some of the benefits of using messaging patterns between services rather than direct integration. Messages allow for loose coupling between services, autonomous components that respect boundaries, and easy scalability through asynchronous communication and competing consumers. Transaction handling becomes simpler with messages since each operation is independent rather than spanning multiple systems.
How we daily manage and work in a dispersed company: Particular SoftwareMauro Servienti
Working in Particular Software is awesome and challenging at the same time, working in what we call a "dispersed" company can introduce a lot of friction in your daily job. This session aims to disclose how we work internally, how we manage daily tasks, how we manage communication and long term goals in a company were nearly no one works in the same city as anyone else and were most of us are alone in their countries. Not to mention all the time zones issues on top.
Lavoro da remoto, come Solution Architect, per Particular Software; Il lavoro da remoto è fantastico, porta tanta autonomia nella mia vita quotidiana, il problema è che più il team dispersed cresce più la frizione quotidiana aumenta. Obiettivo di questa sessione è rivelare come lavoriamo internamente in Particular Software, come gestiamo la quotidianità, la comunicazione e gli obiettivi di lungo periodo in un'azienda i cui dipendenti sono dispersi su 17 time zone.
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxSitimaJohn
Ocean Lotus cyber threat actors represent a sophisticated, persistent, and politically motivated group that poses a significant risk to organizations and individuals in the Southeast Asian region. Their continuous evolution and adaptability underscore the need for robust cybersecurity measures and international cooperation to identify and mitigate the threats posed by such advanced persistent threat groups.
Fueling AI with Great Data with Airbyte WebinarZilliz
This talk will focus on how to collect data from a variety of sources, leveraging this data for RAG and other GenAI use cases, and finally charting your course to productionalization.
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfMalak Abu Hammad
Discover how MongoDB Atlas and vector search technology can revolutionize your application's search capabilities. This comprehensive presentation covers:
* What is Vector Search?
* Importance and benefits of vector search
* Practical use cases across various industries
* Step-by-step implementation guide
* Live demos with code snippets
* Enhancing LLM capabilities with vector search
* Best practices and optimization strategies
Perfect for developers, AI enthusiasts, and tech leaders. Learn how to leverage MongoDB Atlas to deliver highly relevant, context-aware search results, transforming your data retrieval process. Stay ahead in tech innovation and maximize the potential of your applications.
#MongoDB #VectorSearch #AI #SemanticSearch #TechInnovation #DataScience #LLM #MachineLearning #SearchTechnology
GraphRAG for Life Science to increase LLM accuracyTomaz Bratanic
GraphRAG for life science domain, where you retriever information from biomedical knowledge graphs using LLMs to increase the accuracy and performance of generated answers
UiPath Test Automation using UiPath Test Suite series, part 6DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 6. In this session, we will cover Test Automation with generative AI and Open AI.
UiPath Test Automation with generative AI and Open AI webinar offers an in-depth exploration of leveraging cutting-edge technologies for test automation within the UiPath platform. Attendees will delve into the integration of generative AI, a test automation solution, with Open AI advanced natural language processing capabilities.
Throughout the session, participants will discover how this synergy empowers testers to automate repetitive tasks, enhance testing accuracy, and expedite the software testing life cycle. Topics covered include the seamless integration process, practical use cases, and the benefits of harnessing AI-driven automation for UiPath testing initiatives. By attending this webinar, testers, and automation professionals can gain valuable insights into harnessing the power of AI to optimize their test automation workflows within the UiPath ecosystem, ultimately driving efficiency and quality in software development processes.
What will you get from this session?
1. Insights into integrating generative AI.
2. Understanding how this integration enhances test automation within the UiPath platform
3. Practical demonstrations
4. Exploration of real-world use cases illustrating the benefits of AI-driven test automation for UiPath
Topics covered:
What is generative AI
Test Automation with generative AI and Open AI.
UiPath integration with generative AI
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfChart Kalyan
A Mix Chart displays historical data of numbers in a graphical or tabular form. The Kalyan Rajdhani Mix Chart specifically shows the results of a sequence of numbers over different periods.
Webinar: Designing a schema for a Data WarehouseFederico Razzoli
Are you new to data warehouses (DWH)? Do you need to check whether your data warehouse follows the best practices for a good design? In both cases, this webinar is for you.
A data warehouse is a central relational database that contains all measurements about a business or an organisation. This data comes from a variety of heterogeneous data sources, which includes databases of any type that back the applications used by the company, data files exported by some applications, or APIs provided by internal or external services.
But designing a data warehouse correctly is a hard task, which requires gathering information about the business processes that need to be analysed in the first place. These processes must be translated into so-called star schemas, which means, denormalised databases where each table represents a dimension or facts.
We will discuss these topics:
- How to gather information about a business;
- Understanding dictionaries and how to identify business entities;
- Dimensions and facts;
- Setting a table granularity;
- Types of facts;
- Types of dimensions;
- Snowflakes and how to avoid them;
- Expanding existing dimensions and facts.
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceIndexBug
Imagine a world where machines not only perform tasks but also learn, adapt, and make decisions. This is the promise of Artificial Intelligence (AI), a technology that's not just enhancing our lives but revolutionizing entire industries.
Your One-Stop Shop for Python Success: Top 10 US Python Development Providersakankshawande
Simplify your search for a reliable Python development partner! This list presents the top 10 trusted US providers offering comprehensive Python development services, ensuring your project's success from conception to completion.
Skybuffer SAM4U tool for SAP license adoptionTatiana Kojar
Manage and optimize your license adoption and consumption with SAM4U, an SAP free customer software asset management tool.
SAM4U, an SAP complimentary software asset management tool for customers, delivers a detailed and well-structured overview of license inventory and usage with a user-friendly interface. We offer a hosted, cost-effective, and performance-optimized SAM4U setup in the Skybuffer Cloud environment. You retain ownership of the system and data, while we manage the ABAP 7.58 infrastructure, ensuring fixed Total Cost of Ownership (TCO) and exceptional services through the SAP Fiori interface.
Programming Foundation Models with DSPy - Meetup SlidesZilliz
Prompting language models is hard, while programming language models is easy. In this talk, I will discuss the state-of-the-art framework DSPy for programming foundation models with its powerful optimizers and runtime constraint system.
Generating privacy-protected synthetic data using Secludy and MilvusZilliz
During this demo, the founders of Secludy will demonstrate how their system utilizes Milvus to store and manipulate embeddings for generating privacy-protected synthetic data. Their approach not only maintains the confidentiality of the original data but also enhances the utility and scalability of LLMs under privacy constraints. Attendees, including machine learning engineers, data scientists, and data managers, will witness first-hand how Secludy's integration with Milvus empowers organizations to harness the power of LLMs securely and efficiently.
Digital Marketing Trends in 2024 | Guide for Staying AheadWask
https://www.wask.co/ebooks/digital-marketing-trends-in-2024
Feeling lost in the digital marketing whirlwind of 2024? Technology is changing, consumer habits are evolving, and staying ahead of the curve feels like a never-ending pursuit. This e-book is your compass. Dive into actionable insights to handle the complexities of modern marketing. From hyper-personalization to the power of user-generated content, learn how to build long-term relationships with your audience and unlock the secrets to success in the ever-shifting digital landscape.
23. @mauroservienti
Suppliers & Products & Shopping Cart
[ list-of ]
- Item ID
- CurrentPrice
- LastPrice
- Quantity
- Inventory
- Name
- Description
Shopping Cart
- Item ID
- Price
- Inventory
Products
Is item XYZ in a cart?
Swap & Insert Prices
Move to Saved for…
- Supplier ID
- Item ID
- Purchase Price
Suppliers
Update XYZ Price
Are we selling?
New Purchase Price
24. @mauroservienti
“the microservices way”
Shopping CartProducts
Is item XYZ in a cart?
Swap & Insert Prices
Move to Saved for…
Suppliers Update XYZ Price
Are we selling?
New Purchase Price
• Incoming “external” HTTP Post
• HTTP Query from Suppliers to Products
• HTTP Post from Suppliers to Products
• HTTP Query from Products to Shopping Cart
• HTTP Post from Products to Shopping Cart
25. @mauroservienti
Hops 1 2 3 4 10
Latency 100ms 200ms 300ms 400ms 1 second
“the microservices way”
Does not count any processing time!
…
36. @mauroservienti
Queries are still a thing: Add item to cart.
[ list-of ]
- Item ID
- Price
- Quantity
- Inventory
- Name
- Description
Shopping Cart
- Item ID
- Price
- Inventory
Products
copy price
copy inventory
37. @mauroservienti
Data sharing is still a thing
[ list-of ]
- Item ID
- CurrentPrice
- LastPrice
- Quantity
- Inventory
- Name
- Description
Shopping Cart
+ new price details
Business
Logic
Sell Price Changed
MovetoSavedfor…
38. @mauroservienti
We’re flooding the system…
Shopping CartProducts
Is item XYZ in a cart?
Swap & Insert Prices
Move to Saved for…
Is item XYZ in a cart?
Update XYZ inventory
Is item XYZ in a cart?
Swap & Insert Prices
Move to Saved for…
Is item XYZ in a cart?
Update XYZ inventory
Is item XYZ in a cart?
Swap & Insert Prices
Move to Saved for…
Is item XYZ in a cart?
Update XYZ inventory
Is item XYZ in a cart?
Swap & Insert Prices
Move to Saved for…
Is item XYZ in a cart?
Update XYZ inventory
Is item XYZ in a cart?
Swap & Insert Prices
Move to Saved for…
Is item XYZ in a cart?
Update XYZ inventory
Is item XYZ in a cart?
Swap & Insert Prices
Move to Saved for…
Is item XYZ in a cart?
Update XYZ inventory
Is item XYZ in a cart?
Swap & Insert Prices
Move to Saved for…
Is item XYZ in a cart?
Update XYZ inventory
Is item XYZ in a cart?
Swap & Insert Prices
Move to Saved for…
Is item XYZ in a cart?
Update XYZ inventory
Is item XYZ in a cart?
Swap & Insert Prices
Move to Saved for…
Is item XYZ in a cart?
Update XYZ inventory
Is item XYZ in a cart?
Swap & Insert Prices
Move to Saved for…
Is item XYZ in a cart?
Update XYZ inventory
Is item XYZ in a cart?
Swap & Insert Prices
Move to Saved for…
Is item XYZ in a cart?
Update XYZ inventory
Is item XYZ in a cart?
Swap & Insert Prices
Move to Saved for…
Is item XYZ in a cart?
Update XYZ inventory
Update XYZ Price
Update XYZ Inventory
Over and over, and over, and over…
41. @mauroservienti
User mental model is misleading
[ list-of ]
- Item ID
- CurrentPrice
- LastPrice
- Quantity
- Inventory
- Name
- Description
Shopping Cart
- Item ID
- Price
- Inventory
Products
- Supplier ID
- Item ID
- Purchase Price
Suppliers
42. @mauroservienti
Let’s focus on the Shopping Cart
[ list-of ]
- Item ID
- CurrentPrice
- LastPrice
- Quantity
- Inventory
- Name
- Description
- Etc…
Shopping Cart
43. @mauroservienti
Sales shopping cart
[ list-of ]
- Item ID
- Quantity
- Inventory
- Name
- Description
- Delivery Est.
Shopping Cart
- Item ID
- Price
Sales
[ list-of ]
- Item ID
- CurrentPrice
- LastPrice
- Quantity
44. @mauroservienti
- Item ID
- Price
Sales
[ list-of ]
- Item ID
- CurrentPrice
- LastPrice
- Quantity
Warehouse shopping cart
[ list-of ]
- Item ID
- Quantity
- Name
- Description
- Delivery Est.
Shopping Cart
[ list-of ]
- Cart ID
- Item ID
- Inventory
- Quantity
Warehouse
- Item ID
- Inventory
45. @mauroservienti
Shipping shopping cart
[ list-of ]
- Item ID
- Quantity
- Name
- Description
Shopping Cart
[ list-of ]
- Cart ID
- Item ID
- Quantity
- Delivery Est.
- Item ID
- Price
Sales
[ list-of ]
- Item ID
- CurrentPrice
- LastPrice
- Quantity
[ list-of ]
- Cart ID
- Item ID
- Inventory
- Quantity
Warehouse
- Item ID
- Inventory
- Item ID
- Delivery
Type
Shipping
46. @mauroservienti
Marketing tends to be stable
[ list-of ]
- Item ID
- Quantity
Shopping Cart
[ list-of ]
- Cart ID
- Item ID
- Quantity
- Delivery Est.
- Item ID
- Price
- Item ID
- Name
- Description
Marketing
Sales
[ list-of ]
- Item ID
- CurrentPrice
- LastPrice
- Quantity
[ list-of ]
- Cart ID
- Item ID
- Inventory
- Quantity
Warehouse
- Item ID
- Inventory
- Item ID
- Delivery
Type
Shipping
47. @mauroservienti
Do we need the Shopping Cart at all?
[ list-of ]
- Item ID
- Quantity
Shopping Cart
[ list-of ]
- Cart ID
- Item ID
- Quantity
- Delivery Est.
- Item ID
- Price
- Item ID
- Name
- Description
Marketing
Sales
[ list-of ]
- Item ID
- CurrentPrice
- LastPrice
- Quantity
[ list-of ]
- Cart ID
- Item ID
- Inventory
- Quantity
Warehouse
- Item ID
- Inventory
- Item ID
- Delivery
Type
Shipping
48. @mauroservienti
Can Sales be responsible for that concept?
[ list-of ]
- Cart ID
- Item ID
- Quantity
- Delivery Est.
- Item ID
- Price
- Item ID
- Name
- Description
Marketing
Sales
Cart ID
[ list-of ]
- Item ID
- CurrentPrice
- LastPrice
- Quantity
[ list-of ]
- Cart ID
- Item ID
- Inventory
- Quantity
Warehouse
- Item ID
- Inventory
- Item ID
- Delivery
Type
Shipping
49. @mauroservienti
We followed the coupling
[ list-of ]
- Cart ID
- Item ID
- Quantity
- Delivery Est.
- Item ID
- Price
- Item ID
- Name
- Description
Marketing
Sales
Cart ID
[ list-of ]
- Item ID
- CurrentPrice
- LastPrice
- Quantity
[ list-of ]
- Cart ID
- Item ID
- Inventory
- Quantity
Warehouse
- Item ID
- Inventory
- Item ID
- Delivery
Type
Shipping
50. @mauroservienti
What a (micro)service is not
• A service that has only functionality is a function:
• Like calculation, validation, etc.
• A service that has only data is a database:
• Like [create, read, update, delete] entity
• HTTP/WSDL doesn’t change logical responsibility
51. @mauroservienti
What a (micro)service is
the technical authority
for a specific business
capability
All business rules (& data) reside within the service
59. @mauroservienti
Services communication channel
MarketingSales Warehouse Shipping
behavior & data
behavior & data
behavior & databehavior & data
ViewModel Composition
ViewModel Composition ViewModel CompositionViewModel Composition
Add Item to Cart
60. @mauroservienti
Services communication channel
MarketingSales Warehouse Shipping
behavior & data
behavior & data
behavior & databehavior & data
ViewModel Composition
ViewModel Composition ViewModel CompositionViewModel Composition
Add Item to Cart
1. Set 1 week timeout
61. @mauroservienti
Services communication channel
MarketingSales Warehouse Shipping
behavior & data
behavior & data
behavior & databehavior & data
ViewModel Composition
ViewModel Composition ViewModel CompositionViewModel Composition
Add Item to Cart
1. Set 1 week timeout
2. Set 1 month timeout
62. @mauroservienti
1 week later
MarketingSales Warehouse Shipping
behavior & data
behavior & data
behavior & databehavior & data
ViewModel Composition
ViewModel Composition ViewModel CompositionViewModel Composition
Add Item to Cart
1. Set 1 week timeout
2. Set 1 month timeout
Cart Got Stale
63. @mauroservienti
1 week later
MarketingSales Warehouse Shipping
behavior & data
behavior & data
behavior & databehavior & data
ViewModel Composition
ViewModel Composition ViewModel CompositionViewModel Composition
Add Item to Cart
1. Set 1 week timeout
2. Set 1 month timeout
busCart Got Stale
64. @mauroservienti
1 week later
MarketingSales Warehouse Shipping
behavior & data
behavior & data
behavior & databehavior & data
ViewModel Composition
ViewModel Composition ViewModel CompositionViewModel Composition
Add Item to Cart
1. Set 1 week timeout
2. Set 1 month timeout
bus Cart Got Stale
65. @mauroservienti
1 week later
MarketingSales Warehouse Shipping
behavior & data
behavior & data behavior & data
behavior & data
ViewModel Composition
ViewModel Composition ViewModel Composition
ViewModel Composition
Add Item to Cart
1. Set 1 week timeout
2. Set 1 month timeout
bus
Notify User
Cart Got Stale
66. @mauroservienti
1 month later
MarketingSales Warehouse Shipping
behavior & data
behavior & data
behavior & databehavior & data
ViewModel Composition
ViewModel Composition ViewModel CompositionViewModel Composition
Add Item to Cart
1. Set 1 week timeout
2. Set 1 month timeout
bus
Cart Expired
67. @mauroservienti
busCart Expired
1 month later
MarketingSales Warehouse Shipping
behavior & data
behavior & data
behavior & databehavior & data
ViewModel Composition
ViewModel Composition ViewModel CompositionViewModel Composition
Add Item to Cart
1. Set 1 week timeout
2. Set 1 month timeout
Cart Expired
68. @mauroservienti
1 month later
MarketingSales Warehouse Shipping
behavior & data
behavior & data
behavior & databehavior & data
ViewModel Composition
ViewModel Composition ViewModel CompositionViewModel Composition
Add Item to Cart
1. Set 1 week timeout
2. Set 1 month timeout
busCart Expired Cart Expired
69. @mauroservienti
1 month later
MarketingSales Warehouse Shipping
behavior & databehavior & data
behavior & data
behavior & data
ViewModel Composition ViewModel Composition ViewModel Composition
ViewModel Composition
Add Item to Cart
1. Set 1 week timeout
2. Set 1 month timeout
bus
Wipe cart Wipe cart
Cart Expired Cart Expired
73. @mauroservienti
Takeaways
• Boundaries are key to success
• Mental model can badly influence design
• Users/Business analysts tend to think in term
of data presentation
74. @mauroservienti
Takeaways
• Boundaries are key to success
• Mental model can badly influence design
• Do not name things prematurely
• Premature names stick and drive data
aggregation
75. @mauroservienti
Takeaways
• Boundaries are key to success
• Mental model can badly influence design
• Do not name things prematurely
• Behaviors define how to aggregate data
• Group data that change together and that influence each
other
• Use anti-requirements techniques to validate data
grouping
• Follow the coupling
76. @mauroservienti
Takeaways
• Boundaries are key to success
• Mental model can badly influence design
• Do not name things prematurely
• Behaviors define how to aggregate data
• Use messaging to temporally decouple services
I’m a remote worker
We live in a small flat, thus I have a small office
I enjoy going to the office by bike
And I enjoy bananas for my breaks
Bike riding and bananas in the backpack are not a great idea, so…
How is this thing designed?
I’m a remote worker
I enjoy going to work by bike
And I enjoy bananas as lunch breaks
Bike riding and bananas in the backpack are not a great idea, so…
Price cannot unexpectedly change while an item is in the cart
Price cannot unexpectedly change while an item is in the cart
distributed monolith
Amazon found every 100ms of latency cost them 1% in sales
https://blog.gigaspaces.com/amazon-found-every-100ms-of-latency-cost-them-1-in-sales/
distributed monolith
distributed monolith
At Cart Item Add time
Deploy time
HTTP/WSDL remark : The fact that you add an HTTP or WSDL entry point into the code, doesn’t make it a service!
Again, not technical, but look at it from a business perspective. What is the responsibility of a service?
Sales conceptually own the shopping car concept
Sales conceptually own the shopping car concept
Sales conceptually own the shopping car concept
Sales conceptually own the shopping car concept
Since we have very low, if not zero, coupling across services.