Cross Origin Resource Sharing, or CORS for short, is a mechanism to allow cross-origin requests (which happens when the sender and the receiver are hosted on different protocols, domains or ports), throught additional HTTP headers, between two applications with diferent origins to give access permission to specified resources. It has a pretty deep background over it, so let’s go back to where we started to see why such a thing should exist. Cookie-Based Auth It became quite common nowadays to type your credentials only once and remain authenticated until you explicitly logout on any service. We usually manage this by...…
read more...Still using GitFlow? What about a simpler alternative?
GitFlow is a branching model created by Vincent Driessen on 2010 (original article). Since it was published, many companies had tested and implemented it, which allows us to have many reviews about how well (or not) it works. After some discussions within our team, we decided to not go with GitFlow, but use a simpler model instead, together with a tightly defined workflow. Some of the discussed reasons of why not go with GitFlow are the same written on this blog post. The Feature Branch Model Compared to GitFlow, it is easier to implement and does not require any plugins...…
read more...Transitioning from MySQL to Cassandra at Chaordic
Chaordic is the leader in big data based personalization solutions for e-commerce in Brazil. The largest online retailers in the country, such as Saraiva, Walmart and Centauro use our solutions to suggest personalized shopping recommendations to their users. Chaordic’s Data Platform provides a common data layer and services shared among multiple product offerings. Three years ago Chaordic was experiencing an exponential growth. From the beginning, our business was based in gathering as much as relevant information as we could collect. I’ve joined the company when the core database solution - MySQL - was struggling to keep the pace of growth....…
read more...Optimizing for Cost in the Cloud and AWS
Scaling a cloud operation requires a great deal of design choices, engineering practices, and picking the right set of technologies. Critical to being competitive while scaling is also being cost-efficient. Specially for complex cloud based offerings, infrastructure costs can represent a significant part of the company expenses. At Chaordic, we achieved a factor of 3 of improvement in cost efficiency metrics in the last two years, and this post describes some of the techniques we employed to succeed. To begin, being able to actually know your costs is the basis for intelligent decision making. While this is somewhat obvious, the...…
read more...Start using Spark with Ignition!
Apache Spark is a cluster computing framework designed to provide ease of use, fast processing and general-purpose pipelines when compared to traditional systems like Apache Hadoop. Here at Chaordic we are using it to build scalable products, like Personalized Emails, replacing a stack comprising of Hadoop Jobs, databases and services like Amazon Dynamo, MySQL, SQS, Redis and internal systems built on Jetty. Even Spark being easy to use and very powerful, we’ve learned better ways to use Spark and condensed them in a open-source project called Ignition, consisting of: Ignition-Core, a library with Spark and Scala goodies, including a command-line...…
read more...Saldão Black Friday 2014
No último fim de semana tivemos o maior evento do e-commerce brasileiro, a Black Friday. Enquanto você se divertia na caça por promoções, a gente na Chaordic também se divertia mantendo as engrenagens girando para fornecer a melhor experiência de compra aos consumidores, promovendo o encontro entre eles e os produtos que mais lhes interessam. Somente na sexta-feira registramos mais de 750 milhões de interações com nossos serviços partindo de 12,5 milhões de usuários. Isso representa aproximadamente 4 vezes o valor medido na sexta da semana anterior. Apesar disso, nossos servidores responderam em 55 milissegundos durante praticamente todo o evento....…
read more...