Low-code development in .NET 6 ecommerce platform using Azure Logic Apps
Low code is a popular approach to building and customizing applications that require a little understanding of coding. Low-code platforms use visual interfaces with Lego-like logic and drag-and-drop functionality. In this article, you’ll get an introduction to the low-code approach and Azure Logic Apps basics followed by an example of a middleware integration scenario in the Virto Commerce with its one of the best B2B eсommerce platforms.
What Is Low Code in eCommerce Development?
The premise behind intuitive, low-code tools is that they will enable users with little knowledge of programming or software development processes to create their own applications or customize existing software without knowing the programming language in which the original application was built.
The low-code approach is becoming more popular as a faster and easier alternative to traditional software development, also referred to code first. Both professional developers and analysts or business users (often called "citizen developers") use low-code technologies to create applications for business automation processes, integrations, and accelerating digital transformation.
Gartner defines the low-code platform (LCAP) as: “…a platform that supports rapid application development, one-step rollout, execution, and control using high-level declarative programming abstractions such as model and metadata-based programming languages.” Gartner also predicts, that by 2024, 65% of developed apps will be low code.
Why has low-code developing become so popular? Businesses regularly require software changes and features customization. Sometimes these updates are minor and sometimes they are more significant, requiring the development of some fundamentally heavy application.
Low Code Pros and Cons
In the traditional code-first paradigm, the developer is responsible for the development of the functionality and all the edits. Developers begin to slow down the pace of work, lose interest in the project, and mentally burn out because, as the project grows, they are more and more involved in minor edits and less and less in reusable code.
For businesses, the traditional code-first approach is also not completely satisfying, because they may have to wait a long time for updates. In many mature projects, developers are engrossed in minor improvements while dozens of major improvements accumulate in the company's backlog for months.
Therefore, to accelerate the digital transformation process or establish integration between applications, it is considerably faster and easier to assemble or reconfigure components in the Lego-like software constructor. This can be done not only by developers, but also by business analysts or experienced end users with some development skills.
The low-code approach has its drawbacks as well. These include being bound to the vendor of the low-code constructor and the high cost of licenses, sometimes exceeding the annual fees of experienced programmers.
Therefore, it is of practical interest to work with a low-code constructor with a reasonably priced license, which is provided by a vendor of leading application development and deployment tools. Thus, in the team, professional developers will always be close to citizen developers, and will provide assistance in difficult situations with algorithms and cloud deployment.
One of the leading products for low-code development is Azure Logic Apps by Microsoft. Virto's team has been successfully working with Azure services for a long time and, at the same time, uses the asp net core ecommerce platform to develop ecommerce solutions. Therefore, it was organic for us to add a low-code track to our development processes, as well as help partners and customers work with Azure Logic Apps when customizing and integrating various applications within the ecommerce ecosystem.
What Is Azure Logic Apps?
Let’s start with the official Microsoft definition: “Azure Logic Apps is a cloud-based platform for creating and running automated workflows that integrate your apps, data, services, and systems. With this platform, you can quickly develop highly scalable integration solutions for your enterprise and business-to-business (B2B) scenarios. As a member of Azure Integration Services, Azure Logic Apps simplifies the way that you connect legacy, modern, and cutting-edge systems across cloud, on premises, and hybrid environments.”
In simple speaking, Logic Apps is a low-code integration service for communicating with different services or platforms. Microsoft provides Logic Apps to use in your projects to speed up development. It allows you to schedule, automate, and orchestrate tasks. This means you can create high-level abstract diagrams that represent your business workflows and automatically compile these workflows to an application.
These flows may be scheduling an ETL, sending an email integrated with SharePoint, or transferring data to a blob storage, etc. There are a lot of scenarios you likely want to automate and Logic Apps allows you to do that in a simple way.
Regarding Virto Commerce, consider Logic Apps a low-code tool to run a workflow service to create enterprise integrations within ecommerce applications. There are just a few words to add on how Logic Apps works before we move on to showcasing practical examples on the Virto Commerce platform in the next section of this article.
For one thing, all tools like Logic Apps have the principles of a Lego constructor. After having learned to work with one, you can quickly adapt to other low-code systems. Again, we chose Logic Apps for its tight integration with the .NET development environment of our Virto platform.
First of all, you always have a component named “Action” at every step of Logic Apps. In many cases, you have an action chain. But you can also create complex algorithms with logic branching.
In logic flow, you can have a condition not met and then execute actions based on that, or you can have a condition that was met and then you execute a different action.
Every action has input and output ports and this goes for every single step. Logic Apps also allows you to grab output from previous steps, like data, for example, and bring this to new actions ahead of that logic. This is a very powerful feature because you are able to combine multiple outputs from several previous steps and create very complex logic.
The first action in Logic Apps is actually called “Trigger” because it's a specific action that initiates the entire flow. The trigger can be caused by multiple sources like a web request, a scheduled event, Office 365 request, or data coming from a blob storage.
In order to connect data from inputs and outputs of different sources and actions, so-called “connectors” exist in Logic Apps. These connectors transform data from one protocol to another so that your logic moves along the algorithm. There is a large library of 200+ connectors in Logic Apps – a huge selection of options with which you will become familiar as you work. Also, Virto Commerce supports native integration with Logic Apps; for example, you can use Swagger schema to add a connector to any Virto Commerce end point.
Logic Apps welcome screen
When you move to the Logic Apps panel, you will see a welcome screen with the Logic Apps Designer. This is your editor where you're going to be creating Logic Apps’ logic pipelines. Microsoft gives you this first panel with an introduction video, which is great for beginners to watch. Below at the Logic Apps panel, you can choose triggers and logic templates to use right out of the box.
Low-Code Scenarios in eCommerce
Looking at solutions built on Virto Commerce, we realized that many integrations, even if we talk about integration with the same software, are quite custom in every project, so there is no way to generalize them into some unified integration module.
We recommend using middleware for integration rather than point-to-point integrations, categorizing them as a bad architectural practice. That would also be a reason why we see the simplicity of middleware integration as key and would like to invest in it, instead of in point-to-point integrations.
Here’s an example: you have ERP with stock data and want to display it on the storefront in real time to help customers understand the availability of the products and the delivery date.
For ERP, you can make the API call directly, but keep in mind that there are some possible drawbacks:
- First, the ERP was not designed for real-time, high-performance requests.
- Secondly, the ERP can be unavailable for periods of time. If you have a point-to-point connection, your solution will not be responding when the ERP is down.
- Finally, if you hard code the integration, you will need a developer every time you want to modify or improve it.
Azure Logic Apps can play the “Low-Code Integration Middleware” role well, in which the ecommerce solution is responsible for providing high-performance API access to data. All integration scenarios should be covered by the Azure Logic Apps. This is because ecommerce and ERP don't know anything about each other.
Consider Schema 1 “Integration middleware in action to sync stock information between eCommerce and ERP”:
- Existing non-real time ERP system.
- Snapshot of inventory data with business logic to control availability for cart orders.
- Asynchronous synchronization can be triggered by a schedule or webhook.
For example, in your solution, you can use an Inventory module and add two instances of Azure Logic Apps.
- First, sync stocks from ERP to Inventory module nightly, for example.
- Second, send new order details from ecommerce to ERP.
In Schema 2, let’s consider another Logic Apps example
This is a visual representation of all flows that will be asynchronous and controllable:
- Data transformation
- Retry policy
- Errors will be handled by Azure Logic Apps
If you need to improve your logic later, you can use Workflow Visual Designers and improve or adjust integration flow with new actions.
December 2021 Update
In this December 2021 update to the article, let’s dive into more detail about the pros and cons of Low Code development by Logic Apps.
We should point out that Integration Middleware as a pattern and Logic Apps as a product have been used in Virto Commerce for several years now as a basis for building integrations. These tools have proven to work well to date.
Pros of low code development by Logic Apps
1. Integration can be split into separate development, update, and maintenance processes. This allows us to build up scripts without touching core products or adding new products.
2. Data flows are structured and described. In fact, the integration logic becomes visible as the document flows.
3. The next advantage is the presence of documentation. This is good for debugging – we can see every step of the logic execution, find the point of error, and remove the data, correct it, and repeat the logic execution from the place of the error.
4. Integrations can be stored in GitHub repositories and deployed.
5. Low Code development from Logic Apps is easy to use, cloud-based, inexpensive, and scalable.
Cons of low code development by Logic Apps
1. It is bound to Azure, although Microsoft recently announced the ability to run it in its Docker container. Virto Commerce has customers who have chosen to use DellBoomi, and there are other environments in use as well.
2. From a developer’s view of Logic Apps, it might seem like the point-to-point architecture is faster and easier to create in code.
Neutral - Low Code development by Logic Apps:
1. It is not necessarily easy to use Logic Apps for middleware integrations.
2. Low Code has its limits of applicability; complex business logic requires a programmer to work on it. On the other hand, it's good when there are such boundaries.
3. It is necessary to learn how to use and properly configure Logic Apps in Azure, especially error-handling policies and monitoring.
4. It is a necessity to document integrations like data flow and control dependencies.
5. Not all systems are API ready; others do not work correctly for asynchronous scripts. This is especially true for finding changed objects or throwing webhooks.
6. Since integrating systems with intermediate states is required, scripts can be divided into initial bulk loading and subsequent synchronization by time or events.
Using Azure Logic Apps, we are aiming to reduce the cost of development and time to market for implementation partners as much as possible. This will be a great achievement in terms of applying low-code service in ecommerce.