Queue tasks in Celery after database commit – Introducing django-transaction-hooks

April 18, 2018

April 18, 2018 by antoniopaez

At Ebury, we use Django and have followed an ongoing upgrade path from 1.3 to 1.5 to 1.7. During that time we have had an issue that was messing with us. You might be familiar with it.

We use celery for  executing asynchronous tasks and Django is our framework with PostgreSQL database.

The issue occurs when an asynchronous task makes use of an object that has been just updated, or  created. There is a dependency with the database, the object might not have the updated status when the asynchronous task starts, or not even exists yet.

We are now able to utilise the  library django-transaction-hooks, which works with Django 1.6 through 1.8, and has been merged into Django 1.9+.

What is important with this library is that adds the event “on_commit” to manage timing with database transactions. So, we  can use this for scheduling when to queue tasks for celery workers. The main advantage comes when we want to queue using an object created into an atomic transaction. Consider the following example:

Read more

Ebury Chameleon as an example of a Design System

March 16, 2018

March 16, 2018 by Carmel Hassan

How to build a design language that works across teams and platforms

Invision acquired, UXPin released Systems, and Uber, IBM, and Salesforce are examples of companies who have decided to change the way of designing digital products.

They all have one thing in common: using Design Systems as a way of creating outstanding user experiences.
Read more

Javier Vázquez
Salesforce Developer
Miguel Torres
Lead Front-end Developer

Security in JavaScript: An AmsterdamJS story

July 18, 2017

July 18, 2017 by Miguel Torres

Given that security is so important for our applications, then as front-end developers, why are we we so intimidated when we have to secure our projects? How can we easily improve the security layer in our own JavaScript code?

I recently attended the 2017 AmsterdamJS Conference 2017, where I met Ingrid Epure. I would like to share some useful tips from her workshop, The Art of Keeping Your Application Safe.

Read more

TrailheaDX 2017 highlights

July 12, 2017

July 12, 2017 by Yaiza Bailén

TrailheaDX is the Salesforce developer conference. It was held in San Francisco on the 28th and 29th of June, in the Moscone West Center. The number of attendees has quadrupled from last year, with people coming from all around the world, as my colleague and myself traveled from Málaga (Spain).

This conference was born after the demands from Salesforce developers of having their own event. It is true that there is a zone at Dreamforce for developers, but that was not enough for us, and finally our demands were listened to and Salesforce created this amazing conference.

One thing to note about TrailheaDX is that the people giving the talks are product managers, directors or engineers working directly with the products, so you have first hand information.

There were more than 180 sessions to cover multiple and diverse topics. 3 key areas led the whole conference and were highlighted during the opening keynote with amazing demos run by Leah McGowen-Hare (Director of employee and Trailhead content strategy) and Sarah Joyce Franklin (SVP Dev Relations & DM Trailhead). The demos are already online, check this powerful demo of Einstein and this one about Salesforce DX both run by Leah McGowen-Hare, and also this one about Platform Events run by Sarah Franklin.

Leah McGowen-Hare and Sarah Joyce Franklin running demo at Opening Keynote
Leah McGowen-Hare and Sarah Joyce Franklin running demo at Opening Keynote

Read more

Salesforce DX Pilot – first impressions

June 28, 2017

June 28, 2017 by Yaiza Bailén

At Ebury, we use Salesforce as our CRM but also as a reconciliation platform for our lending business; to manage our credit line requests, our margin calls, and our onboarding (KYC, AML) processes. But since standard functionality is not enough for us, we have a dedicated team specialised in that builds customisation and applications for our different teams within the company. Our goal is to use this versatile framework to build features that make our sales process quick and effective, and to help our Operation teams to be focused on what is really important for us, our clients, and let the system take care of the rest.

We applied to be one of the lucky members to be part of the Salesforce DX Pilot and we were selected! Salesforce DX Pilot started on the 22nd of February and it is still going on, but I wanted to share with you my impressions so far.
Read more

Miguel Torres
Lead Front-end Developer

How we created our payments and capabilities map with CARTO

June 16, 2017

June 16, 2017 by Miguel Torres

Recently, we have built out a cool interactive map displaying the payments and capabilities coverage of Ebury for our corporate website using CARTO.

We will walk you through all the stages of development that we made and point you at the source code of our project GitHub.

By applying the micro-services philosophy, we decided to develop it in a separate project, so we began to analyse the tech stack to be used.

We took a look at tools like Google Maps or Leaflet, which are great for displaying maps, but it was not easy to display the data in the way we wanted. We then played around with D3.js, a great library for visualising data. However, it was not straightforward to implement a map with standard controls such as zoom or the drag feature.

Finally, we found CARTO that offered the best functions out of all of the options which made it super easy to create this map.

Read more

Google Hashcode 2017 – How we managed to solve the proposed problem

March 23, 2017

March 23, 2017 by Christian Expósito

The HashCode challenge, a team-based programming competition organised by Google where people from Europe, the Middle-East and Africa try to solve a problem proposed by the company, took place during during the evening on the 23rd February, and Ebury was there to cover such an awesome event.
Our Malaga office was open for those who wanted to join us and have some fun between code lines, flowcharts, loops, and all things on which coding freaks like me enjoy spending time.

This time, Google asked us to create a solution to improve the performance of the way a video streaming platform delivers its videos to the end users: we were provided with several cache servers that were accessible from certain endpoints and we were able to improve the load time of a specific video if using them. In any one video, we have a file detailing how many end users are trying to watch it, how much time the platform takes to load that video (latency), what cache servers can their endpoints access, and what is the latency of each one (read the complete problem here).

Read more

Miguel Torres
Lead Front-end Developer

dotCSS: Moving the CSS styles forward

February 13, 2017

February 13, 2017 by Miguel Torres

It’s been 2 months since we travelled to Paris in order to attend the dotCSS and the dotJS, both part of the dotConferences series of developer events.

We would like to share with you what we have learnt and to do that, we have created a presentation in HTML, CSS and JS using all the new and cool techniques that were presented in the conference!

Read more

Alvaro Luque
Enterprise architect

Recursive Amazon Lambda Functions

November 22, 2016

November 22, 2016 by Alvaro Luque

Unless you’ve been in a cave for the last year, you may have noticed how “Serverless” is the new sticky word in the dev community and it’s like we’ve not had time to get used to the “Microservices” buzz. But don’t go crazy just yet, it’s not the time throw away your “still hot” blueprint of your architecture because a new trending topic has arrived. We decided to keep it cool and just experiment a little bit.

This blog describes how we used AWS Lambda and overcame some of its current limitations to solve a typical data processing pipeline problem.

Read more