Latest Replies
Friday
Oct152010

Release of Lokad-CQRS for Windows Azure, Community Credits.

First release of Lokad.CQRS for Windows Azure is out!

Lokad.CQRS for Windows Azure is a guidance and framework on efficiently building solutions for the cloud. It fits distributed and scalable enterprise scenarios as well as small and cost-effective solutions.

Lokad.CQRS is based on cloud experience and R&D investments of Lokad (winner of Windows Azure Partner Award 2010 by Microsoft), a lot of existing theory (i.e.: Efficient Development series, CQRS, etc) and numerous production-proven .NET building blocks.

First release manifests an important milestone for us and development of this project. It includes Azure Starter binaries (available in the downloads), tutorials with samples (1-4) and a large list of reference materials.

Credits

Before going any further I would like to thank people that made such a project possible and helped us to move forward (I'm sorry if the paragraph below will sound a bit like the Oscar nomination show, but this is really important):

  • Udi Dahan - for clarifying CQRS; without his blog I wouldn't know where to start.
  • Greg Young - for wonderful and inspiring ideas about taking CQRS/DDD/ES to the edge; they serve as constant inspiration to move forward and help to reduce complexity of existing code.
  • Marc Gravell - for his wonderful ProtoBuf-net framework and community help in C#; without ProtoBuf we would still be struggling over evolving messages and keeping performance-high.
  • Nicholas Blumhardt - for Autofac, of course; Lokad.CQRS infrastructure and configuration DSLs are a breeze to write and evolve thanks to this elegant, powerful and lean IoC container for .NET. Thanks again, man!
  • CQRS/DDD community and especially Jonathan Oliver, Jérémie Chassaing, Yves Reynhout, Mark Nijhof, Szymon Pobiega and many others commenting on my Journal, providing encouraging feedback, valuable critics and sharing experience.
  • All the readers of this Journal. There is nothing as motivating to move forward as hitting "1000 subscribers" point.
  • Lokad team. You know for what.

Lokad.CQRS Recap

In the first place Lokad.CQRS project is a guidance on building scalable applications with Windows Azure. As such it packs in some samples, tutorials and reference materials.

In addition to that, there is an Open Source .NET Framework that handles core complexities and intricacies of building scalable enterprise solution with Windows Azure (there are still a lot of issues with this young platform; we hit them and do not want you to experience the same).

Lokad.CQRS framework for Azure could be reused in the binary form or as a reference implementation (esp. to save you some time or demonstrate some approach). Everything (articles, tutorials and source code) is open-source and you can use it without any commercial restrictions (OSI-compatible New BSD License).

Here's a quick overview of the primary links:

BTW, out of sheer curiosity you can also check the full list of Lokad projects that we share with the community as open source.

Used in Production at Lokad

This first release is far from being perfect. There is so much more what we've learned since starting Lokad.CQRS. There is even more that we want to add to this project down the road (i.e.: just to handle higher requirements on scalability, simplicity and reduced development and maintenance friction).

Yet Lokad.CQRS is what we actually use in the production: Lokad Salescast is currently running on the latest version of the codebase (and latest Windows Azure Guest OS with .NET 4.0) without any problems (if there were any I would be fixing them instead of writing this blog post).

Salescast is an integration platform between Lokad Forecasting services and our customers. It was started as a small Windows Azure application to be developed and maintained by 1-2 people.

Yet right now it:

  • features auto-detection and integration with more than 10 ERP data formats, custom workflows, report and integration intelligence;
  • can reliably and automatically handle integration with MS SQL, MySQL and Oracle databases frequently hosted in unreliable environments;
  • has "pumped through" over 9.5 millions of products, 66 millions of order lines and delivered 3.6 millions of forecasts. The numbers are steadily growing;
  • is capable of being scaled out to handle even higher loads (at least 100x higher with a modest improvements in Lokad.CQRS core, that are planned);
  • has a lot of features to reduce development, maintenance and support friction and has not shown any signs of complexity barrier yet.

Lokad Salescast

At the same time the project is still fun and still requires less than 1 person full time to keep on development and adding new features (maintenance and partial customer support included).

Most of that was achieved thanks to Windows Azure, Lokad.CQRS and ideas liberally borrowed from the development community. And this is the reason why we put so much effort to give Lokad.CQRS to the community back.

BTW, while using ask.lokad.com community for posting questions about our technologies, guidance and frameworks, please use separate topics (instead of comments) to post questions and express your feedback which we really appreciate! I especially loved this one:

Rinat, thank you so much for the detailed answer and invaluable code snippets! I love you , man! From your first snippet I see that until now I've had completely wrong understanding about the pub/sub functionality of Lokad.CQRS. That aside, the approach you propose will fit perfectly in my scenario. Thank you once again!

Well, thank you all! There is more coming to CQRS (for the small and cloud solutions alike). Stay tuned!

« Practical CQRS/Cloud Samples and an eBook: Does This Interest You? | Main | Teach Visual Studio Your Own Language - Easy! »

Reader Comments (14)

Congrats on this mile stone

I am a big fan of Lokad and specially Lokad.CQRS & Lokad.Cloud.

I am looking forward sharing some sample code using lokad.cqrs soon.

You guys rock :)

October 15, 2010 | Unregistered CommenterSarmaad

Sarmaad, that would be terrific!

I really look forward to this. We could reference samples directly (or even include them if you want) from Lokad.CQRS to let everybody else benefit!

October 15, 2010 | Registered CommenterRinat Abdullin

Rinat,

Congratulations on your first official release of Lokad.CQRS! This project is helping me immensely in tackling the intricacies of the Azure platform and in understanding the principles of CQRS and battle-hardened enterprise application architectures. It is thanks to people like you and your colleagues at Lokad that open source software is blossoming and we are able to freely learn from each other.

Thank you for sharing so much with the community and keep up the great work!

October 15, 2010 | Unregistered CommenterTisho

Tisho, thanks for the kind words. I'm glad Lokad.CQRS helps you to move forward in your endeavors!

Please, don't hesitate to drop a link, should you ever get a success story or use case with Lokad.CQRS.

October 15, 2010 | Registered CommenterRinat Abdullin

I sure will once we have a live version :). I'm using Lokad.CQRS at the core of the online platform we're building and plan to launch in a month or so.

October 15, 2010 | Unregistered CommenterTisho

And thanks back to you of course Rinat - without your help Autofac would never have gotten off the ground.

Congratulations on hitting 1.0! The first of many great releases to come I'll bet.

October 16, 2010 | Unregistered CommenterNicholas Blumhardt

Tisho, I look forward to this! I wonder if this is the Human Record website... :)

October 16, 2010 | Registered CommenterRinat Abdullin

Sounds good.

It would be very helpful if there was a blog post to step thru a basic example and explain how all of this works. Right now you are letting the code stand on it's own. For us newbies, and because there are many dialects of CQRS, a basic getting started post, explaining an example in detail, from web role to worker role and back, might shorten the adoption curve. You know, like Greg stepped thru his code, in detail, during the 6 hour video (although I'm not suggesting a video like that - a blog post would be excellent.).

Thanks for sharing your hard work on this!

October 16, 2010 | Unregistered CommenterStacy

Stacy, have you tried going through the Getting Started section?

October 17, 2010 | Registered CommenterRinat Abdullin

Rinat, I shall remain silent ;)

October 17, 2010 | Unregistered CommenterTisho

Congrats Rinat, for this really amazing project release.

October 17, 2010 | Unregistered Commenterpocheptsov

Ok. At some point in the future I will download AzureStarter and discover what's there and how to use it.

October 17, 2010 | Unregistered CommenterStacy

Stacy, sure. I'd love to hear your feedback then.

Cheers!

October 17, 2010 | Registered CommenterRinat Abdullin

Slava, thanks! Have you tried applying it in your projects?

October 17, 2010 | Registered CommenterRinat Abdullin
Comments for this entry have been disabled. Additional comments may not be added to this entry at this time.