
An overview of our sample solution
Rather than giving you simple disparate samples of code for each chapter, we decided to develop a full-blown IT solution for a manufacturing and distribution company. This will show you how all the Azure artefacts can be integrated together to provide a working solution. By the end of this book, you should be able to appreciate how Azure services makes integration simpler and easier.

Our solution is based on a fictitious company named Sunny Electrical Manufacturing. This company manufactures electrical equipment for the electrical wholesale market. They source raw materials from suppliers around the world for their manufacturing pision. Sunny Electrical Manufacturing encourages self-service for suppliers and customers. Suppliers are allowed to view stock levels of their products that they supply to automatically raise purchase orders.
Sunny Electrical Manufacturing wants to offer better serviceability by incorporating IoT devices in their products to provide predictive maintenance information to their technicians in the field.
Their CIO decided to use a hybrid technology solution for their backend systems. Their ERP system will be hosted on premise, and their CRM and ecommerce solution will be hosted in Azure.
Now, let's go through the high-level solution diagram:
- Sunny Electrical Manufacturing has a public-facing website (e-commerce site) hosted in Azure. This is where customers can view products, raise purchase orders, and view invoices. To provide faster response times for the product catalog pages, we decided to use a Content Delivery Network (CDN) for the Product images.
- A Logic App (Sales Process) receives requests for product information from the website. This information is obtained from the SQL data sync (Products) database in Azure, which is kept in sync with the ERP system on premise. The same Logic App (Sales Process) also receives the sales request from the website and handles the workflow of checking CRM for customer details and credit validation before placing a purchase order on the Service Bus Purchase Order.
- Another Logic App (Purchase Process) reads the purchase orders from the service bus queue and sends it to Sunny Electrical Manufacturing via an Azure Relay Service to an API web hook to receive orders. Before being sent, the purchase order is enriched with the customer's details obtained from CRM.
- Customer invoices from Sunny Electrical Manufacturing are placed on a Service Bus Topic (Customer Invoices, Supplier Invoice) from the ERP system. A Logic App (Invoice Process) reads the customer invoices off the service bus topic and updates CRM before sending the customer a notification message.
- Suppliers have the capability to view Sunny Electrical Manufacturing stock levels through API's exposed via API Management. If stock levels are low, they have the authority to send more stock and upload the invoice to the API App (Supplier Invoices), which places it on the Service Bus Topic (Customer Invoices, Supplier Invoice). The Logic App (Invoice Process) reads the service bus topic and updates CRM and the ERP System.
- The IoT hub constantly receives telemetry data from the products sold by Sunny Electrical Manufacturing and uses Stream Analytics to interrogate the data for any alerts and to store the data in blob storage. Any alerts detected are placed on the Service Bus (IoT Alerts). This queue is monitored by a Logic App (Service Alerts). When an alert is detected on the queue, the logic app will retrieve the customers and technician details from CRM and place the alert on the Notification Hubs for the technician to respond.