EnjoyHQ

Decision at EnjoyHQ about PostgreSQL, MongoDB, RethinkDB

Avatar of lukaszkorecki
CTO & Co-founder at EnjoyHQ ·

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 upvotes·24.4K views

Decision at EnjoyHQ about Stackdriver, Clojure, StatsD, Google Compute Engine, collectd

Avatar of lukaszkorecki
CTO & Co-founder at EnjoyHQ ·

We use collectd because of it's low footprint and great capabilities. We use it to monitor our Google Compute Engine machines. More interestingly we setup collectd as StatsD replacement - all our Clojure services push application-level metrics using our own metrics library and collectd pushes them to Stackdriver

6 upvotes·1 comment·16.1K views

Decision at EnjoyHQ about GraalVM, Clojure

Avatar of lukaszkorecki
CTO & Co-founder at EnjoyHQ ·

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 upvotes·6.7K views

Decision at EnjoyHQ about Clojure, Ruby

Avatar of lukaszkorecki
CTO & Co-founder at EnjoyHQ ·

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 upvotes·2.8K views

Decision at EnjoyHQ about Google Compute Engine, nginx

Avatar of lukaszkorecki
CTO & Co-founder at EnjoyHQ ·

We use nginx because it's super reliable, has great extensions and at the same time is light-weigh​t. nginx powers our authorization layer, inter-service communication, and public load balancing (fronted by Google Compute Engine load balancers).

2 upvotes·172 views

Decision at EnjoyHQ about RabbitMQ

Avatar of lukaszkorecki
CTO & Co-founder at EnjoyHQ ·

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 upvote·343 views

Decision at EnjoyHQ about Stripe

Avatar of lukaszkorecki
CTO & Co-founder at EnjoyHQ ·

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

1 upvote·161 views

Decision at EnjoyHQ about Redis

Avatar of lukaszkorecki
CTO & Co-founder at EnjoyHQ ·

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 upvote·117 views

Decision at EnjoyHQ about nginx

Avatar of lukaszkorecki
CTO & Co-founder at EnjoyHQ ·

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 upvote·115 views