Avatar of 艁ukasz Korecki

艁ukasz Korecki

CTO & Co-founder at NomNom

Decision at EnjoyHQ about PostgreSQL, MongoDB, RethinkDB

Avatar of lukaszkorecki
CTO & Co-founder at NomNom

We initially chose RethinkDB because of the schema-less document store features, and better durability resilience/story than MongoDB In the end, it didn't work out quite as we expected: there's plenty of scalability issues, it's near impossible to run analytical workloads and small community makes working with Rethink a challenge. We're in process of migrating all our workloads to PostgreSQL and hopefully, we will be able to decommission our RethinkDB deployment soon.

12 upvotes4K views

Decision at EnjoyHQ about GraalVM, Clojure

Avatar of lukaszkorecki
CTO & Co-founder at NomNom

We use Clojure because of simplicity, performance and great fit to our problem domain: processing a lot of structured data. Based on my experience so far, Clojure is my go-to language for most tasks, except for when a fast startup time and a low resource footprint is required - basically CLI tools. That's slowly starting to change thanks to native-image and GraalVM

5 upvotes855 views

Decision at EnjoyHQ about Clojure, Ruby

Avatar of lukaszkorecki
CTO & Co-founder at NomNom

Ruby is the original language at Enjoy: the prototype was built with Ruby and some of its parts are running till this day (I'd say 80% of it is gone, ported to Clojure)

Outside of usual web-development tasks we use Ruby for our operations tooling.

2 upvotes274 views

Decision at EnjoyHQ about RabbitMQ

Avatar of lukaszkorecki
CTO & Co-founder at NomNom

We use RabbitMQ because of great stability and client support across many languages. RabbitMQ is the backbone of the whole platform and we use it whenever it makes sense (async background processing, event tracking, orchestration)

1 upvote212 views

Decision at EnjoyHQ about Stripe

Avatar of lukaszkorecki
CTO & Co-founder at NomNom

We use Stripe because of ridiculously simple it is to integrate, while still supporting all kinds of billing scenarios.

1 upvote82 views

Decision at EnjoyHQ about Redis

Avatar of lukaszkorecki
CTO & Co-founder at NomNom

We use Redis because of its simplicity. Our main use case is actually not caching, but using it as a buffer for batching RabbitMQ jobs.

1 upvote50 views

Decision at EnjoyHQ about Sass

Avatar of lukaszkorecki
CTO & Co-founder at NomNom

We use Sass because it makes working with CSS somewhat easier. We use it both as part of Rails' frontend and via webpack/node.

1 upvote47 views

Decision at EnjoyHQ about nginx

Avatar of lukaszkorecki
CTO & Co-founder at NomNom

We use nginx because of its simplicity and robustness. Nginx plays many roles in our setup: an authentication backend, a load balancer and a reverse proxy for routing traffic to our Clojure services.

1 upvote47 views

Decision at EnjoyHQ about PostgreSQL

Avatar of lukaszkorecki
CTO & Co-founder at NomNom

We use PostgreSQL because of stability, popularity and plethora of features, such as JSON data types, foreign data wrappers and so on. PostgreSQL is used everywhere in our stack, from the frontend Rails application down to activity tracking service.

1 upvote46 views