Software Design Blog

Journey of Rinat Abdullin

Salescast - Scalable Business Intelligence on Windows Azure

Yesterday we finally released first version of Salescast. There is an official announcement from Lokad. In this article we’ll talk a bit about how it was built, focusing on the technology, Windows Azure and what this means to customers in terms of business value.

What does Salescast do?

This web application offers smart integration between various inventory and sales management solutions and Lokad Forecasting Services.

Basically, if you have some eCommerce shop that you want to run through some analytics and get forecasts on the future sales, Salescast can help out and handle the routine. It will detect your solution, retrieve the data, process and upload it to Lokad Forecasting Services and assemble the results into nice reports. This decision support comes with some extra integration experience on top of that to automate and streamline the process further:

  • Reduce inventory costs and over-stocks.
  • Improve customer satisfaction.
  • Increase overall sales.
  • Ease relationships with suppliers.

Lokad Salescast

How was it Built?

Salescast is running on Windows Azure platform and was architected to take full advantage of the cloud computing features it provides. For Lokad this meant coming up with the architecture principles, development approaches and frameworks that could allow to leverage all the potential efficiently.

Windows Azure Platform

Principles were based on the adaptation of CQRS and DDD principles for the Windows Azure, great tools and frameworks that Microsoft provides with it. In order to fill some (temporary) gaps in this ecosystem, custom Enterprise Service Bus for Azure was created.

We are planning to share experience, technological principles and frameworks with the community, just like it has been done with Lokad Shared Libraries, Lokad.Cloud and the other projects. For those, who are following xLim line of research and development, this will match with version 4: CQRS in the Cloud.

At the moment, let’s focus briefly on the business value all this technology creates for the customers.

Handling any Scale

Salescast has implicit capabilities of scaling out. It does not matter, how large is the inventory of customer or history of the sales. Starting from a few hundred products, up to hundreds of thousands and above - Salescast can handle it.

So if you are a large retailer, you don’t need to sign a large contract in order to just try how the solution works for your network of warehouses. Neither you need to wait for development teams to scale architecture and procure the hardware resources.

It’s all already there, powered by the scalability of CQRS architecture, ESB for Azure and virtually unlimited cloud computing resources of Windows Azure.

Anticipating the Unexpected

Salescast can work reliably and incrementally with any data sources. If sales and inventory management solution is persisted within SQL Azure - great. If it is an eCommerce shop running on mySQL in shared environment that tends to timeout from time to time - we are designed to handle it without stressing the other end.

We understand that unexpected things can happen in the real world. More than 95% of possible problems will be handled automatically and gracefully. If something goes really wrong (i.e.: eCommerce server is changed or firewall rules - changed), then we’ll know about the problem, will be able to handle it on case-by-case basis and then continue the process from where it stopped.

Principles of enterprise integration and reliable messaging with ESB on top of Azure Queues help to achieve this.

Designed for Evolution

Salescast is designed for evolution.

We understand, that customers might use rare systems, custom setups or unique in-house solutions. They could need some specific integration functionality in order to handle specific situations.

In order to provide successful integration experience in this context, Salescast will have to evolve and adapt, get smarter. In fact, future evolution of this solution is already built into the architecture and implemented workflows.

For example, if there is some popular eCommerce solution that we didn’t think of integrating with, we’ll teach Salescast how to handle it, for free. The next customer that attempts to optimize sales managed by a similar solution, will get it auto-detected and integrating instantly. This applies for the new versions and flavors of these systems as well.

Basic principles of efficient development, Inversion of Control, pluggable architecture and some schema-less persistence helped to achieve this. Domain Driven Design played a significant role here as well.

Cost-Effective

Salescast is designed to be cost-effective. In fact, it’s effective to the point of being provided for free. This comes from the savings that are passed to the customers. They are based upon:

  • environment allowing to have efficient and smart development that is fast and does not require large teams;
  • efficient maintenance that is automated and requires human intervention only in exceptional cases;
  • elastic scaling out that uses only the resources that are needed;
  • pricing of the Windows Azure Platform itself.

Obviously you still need to pay for the consumption of Lokad Forecasting Services. But their pricing is cost-effective, as well (to the point of being 10x cheaper than any competition). So there are some tangible benefits for the money being spent.

Secure and Reliable

Salescast, as a solution, is based on the features provided by the Microsoft Windows Azure Platform. This includes:

  • Service Level Agreements for the computing, storage and network capacities.
  • Hardware reliability of geographic distribution of Microsoft data centers.
  • Regular software upgrades and prompt security enhancements.

Lokad pushes this further:

  • Secure HTTPS connections and industry-grade data encryption.
  • Redundant data persistence.
  • Regular backups.
  • Reliable OpenID authentication.

Summary

This was a quick technological overview of Salescast solution from Lokad, along with features and benefits it is capable of providing just because it is standing on the shoulders of giants. Some of these giants are:

  • Windows Azure Platform for Cloud Computing and the ecosystem behind.
  • Time-proven principles of development and scalable architecture.
  • Various open source projects and the other knowledge shared by the development community.

Lokad will continue sharing and contributing back to help make this environment even better.

From this point you can:

I’d also love to hear any comments, thoughts or questions you’ve got!