Professional Documents
Culture Documents
A corporation with the scale of Amazon will now interact with a variety
of suppliers. To manage these providers, we'll require a number of
services, which we'll refer to as Inbound Services. These inbound
services will communicate with supplier systems and retrieve pertinent
information. When a new supplier is added to the system, or when a
supplier adds a new item to their inventory, the information must flow
into the system such that it is easily accessible to the user. This
information will once again enter our system via an inbound service and
reach the user on the homepage or through search results via various
consumers listening to a Kafka that will receive events from inbound
services whenever such changes occur. Let's take a closer look at these
individuals.
A search consumer will ensure that a new item can be queried by users
as soon as it is on-boarded. It will read and process all new things being
onboarded, formatting them so that they can be saved in the database and
understood by the search system. After formatting, the data will be
stored in an ElasticSearch database by the search consumer. Elastic
Search is used here because it is incredibly efficient for text-based search
and also enables fuzzy search, which we want for a consistent user
experience. Certain we go over in greater detail in another session where
we look at which databases are best for which circumstances.
Now, a Search Service that interacts with Elastic Search will expose
APIs for filtering, sorting, searching, and other operations on the
products. If you recall, we stated ‘search with delivery ETA' in the
functional requirements. This can be extended to the requirement that we
not show search results that cannot be supplied to the user because that
would be a bad user experience. The search service will communicate
with a Serviceability and TAT service to do this. The serviceability and
TAT service will determine which warehouse the goods will be shipped
from, as well as whether or not there is a route between the warehouse
and the user's pin code, and if so, whether or not that route can be used to
transport this product. It will also calculate an estimated delivery date and
pass this information on to the search engine. This information will be
communicated to the user by the search service.
The user should be able to add a product to their wish list or basket from
the search screen. Wishlist Service and Cart Service are used to do this.
Wishlist service is a repository for all wish lists and cart service is a
repository for all carts in our system. Both of these services will be
constructed in the same way, with APIs for fetching, updating, adding to,
and deleting things from a Wishlist or cart, and they will both use
MySQL databases. They can be constructed on the same hardware, but
because wish lists are often very large, especially when a sale is
approaching, it is recommended that these services be developed on
separate hardware. Scaling the hardware for specific services becomes a
lot easier this way.
The User Service is the next component. It has a repository of all users as
well as APIs for retrieving, updating, adding, and deleting users from our
system. It makes use of a MySQL database and a Redis cache. Let's say
our search service needs to communicate with the serviceability service
about a user's pin code. The user service will first check Redis, and if
Redis doesn't have the information, it will look up in the MySQL
database, retrieve the user's information, store it in Redis for later use,
and return it to the search service.
Once the inventory has been successfully updated, the order taking
service will communicate with the payments service, which will
communicate with the payment gateway and complete the payment
flow. This payment flow can now have three different outcomes: success,
failure, or no response. Let's begin with the joyful flow. Let's say order
O1 was placed at 10:01 with a 10:05 expiry time, and we received a
payment success answer at 10:03. In this scenario, the order status will be
changed to "put," and an event will be triggered to Kafka indicating that
an order has been placed for this product with these specific order
parameters. What would have happened if the payment had been
unsuccessful? Remember that we changed the inventory before beginning
the payment flow. This indicates that the order has already been entered
in the inventory system, and now since the payment has failed, we must
cancel the order. This signifies that the status of the order will be changed
to "cancelled." Amazon then communicates to the inventory service
again because the order has been cancelled, and we'll need to revert the
count in the inventory database. We will have a reconciliation mechanism
on top of this order taking and inventory system to guarantee that the
order count and inventory count are in sync and not inconsistent.
System architecture
Amazon Drones
A very good communication boost from Amazon because delivery by
drone remains impossible in urban areas for several obvious safety
reasons. Based on the Amazon principle, it claims to be able to deliver in
less than 30 minutes within a 16km radius of the delivery centre.
Nevertheless, Amazon is putting in place strong lobbying to achieve its
goals.
There are several key factors that can influence whether Amazon decides
to issue POs from a vendor including:
Prioritize Your Top ASINs – Even though the vendor is seeing only the
forecast they pick on the screen, when downloaded they will see all
forecasts. Not all ASINs will need to be stocked at the same level. It is
suggested they make sure they are covered on top ASINs at the highest
levels possible and adjust accordingly to lesser important ones.
“We see our customers as invited guests to a party, and we are the hosts. It’s
our job every day to make every important aspect of the customer experience a
little bit better.”
Jeff Bezos, Founder & former CEO of Amazon
According to Bezos, the key to the company’s success has been truly
listening to their customers and continuously pushing the boundaries to
provide them with what they are looking for.
All Amazon sellers are responsible for complying with the law along with
Amazon’s policies. Customers trust that they can buy with confidence on
Amazon and receive authentic products that arrive in the condition
advertised. In order to ensure that both sellers and customers have the
best experience, below are some tips that sellers might find helpful when
listing products on Amazon.
o The seller will maintain an internal QMS that enables the timely
identification and reduction of product quality and operational
defects. While certification is currently not required, adherence to
the ISO 9001 policies and guidelines is highly encouraged.
Performance Monitoring