Celery workflows

Celery is a great asynchronous task/job queue framework. It allows you you create distributed systems where tasks (execution units) are executed concurrently on multiple workers using multiprocessing. It also supports scheduling and scales really well since you can horizontally scale workers.

Celery is great at firing both synchronous and – which is one of its main strengths – asynchronous tasks such as email sending, processing of credit cards, writing transactions to a general ledger.

However, Celery offers much more. One of its most useful features is an ability to chain multiple tasks to create workflows.

Using Celery as middleware in SOA

When creating a service oriented architecture, one of the most important decisions to make is usually what protocol to use for inter service communication.

I would like to propose a SOA based on RabbitMQ and Celery as a middleware between specific services and architecture components.

Round half to even in Go

Rounding half to even is used a lot when dealing with financial transactions, accounting and so on.

I have recently used it when implementing a double entry general ledger for one of the hottest startups in London.

Permutation algorithm

You might remember me writing several articles explaining different sorting algorithms. I might come back to that series as there are few sorting algorithms I haven’t gone through. But I wanted to do something else now, this is an interesting algorithm to find all permutations…

My new iPad game

My new iPad game (School of Alchemy) just got approved by Apple. You can download it from the app store. It was quite a fun project, I learned a lot about iOS web views and JavaScript / HTML5, the game is funny and features beautiful…

Build Pipeline Plugin’s Main Weakness

Build Pipeline Plugin is one of my favorite Jenkins plugins. It allows you to build a pipeline out of several jobs by defining upstream and downstream jobs. This way you can create a process consisting of multiple steps from running unit tests, various code quality…

Quick Introduction To BDD Testing With Behat

Behat is a PHP framework for BDD testing. It us very similar to Cucumber¬†(RoR) or Behave (Django), it uses Gherkin language to define features and scenarions. These are then executed by Behat, which uses one or several drivers. In this short example I will show…

Installing Selenium 2 On Mac OS As Service

Selenium 2 is a powerful browser emulator which enables you to automate frontend testing (especially JavaScript heavy pages). It can be used with Behat as well for BDD testing. I prefer using Goutte headless driver to test basic functionality and flow of the application but…