objection.js icon indicating copy to clipboard operation
objection.js copied to clipboard

Who uses objection.js in production?

Open jzimmek opened this issue 7 years ago • 66 comments

Hi there, I am currently evaluating a bunch of orm-a-like libraries for an upcoming project.

I almost gave up after digging deeper into sequelize and typeorm .

Having a PostgreSQL, java (hibernate) and ruby (ar/sequel) background, I was kinda disappointed by nodejs orm libraries. They are not bad, but feel very immature in comparison to java/ruby world.

Then, by accident, I found objectionjs while reading the knexjs README.

Objectionjs is exactly my way of thinking. Pragmatic but not to abstract. Sequelize/Typeorm might have more github stars/forks, but comparing them API- as well as Issue- and feature-wise, objectionjs feels like a way better fit to me (and probably others who also have a relational sql db background).

It deserves more traction and I am asking myself - why is objectionjs not more popular? And who is actually using it in production?

I know it sounds stupid, but is there some who-uses-it listing I can show to an IT decision maker?

Nevertheless, you did an awesome job and built a great library!

jzimmek avatar Sep 11 '18 21:09 jzimmek

Companies that I am aware of: https://www.shift4.com/ https://www.bloomon.nl/

kibertoad avatar Sep 11 '18 22:09 kibertoad

We adopted it as our de facto SQL ORM at Big Room Studios (you can probably even spot an objection model on the homepage!), and our development team has only been very happy with it, having used a variety of ORMs. The size of the community is actually very comfortable—it's large enough that you have active participation on issues, good community support in gitter, and regular contributions, but small enough that maintainers have been able to effectively handle issues without generating a massive backlog. It's also built upon knex (and there's overlap in contributors between objection and knex), which is very widely used. Lastly, it's also the officially supported ORM of @hapipal.

devinivy avatar Sep 11 '18 22:09 devinivy

Note that Objection.js is NOT an ORM in a sense you are used to in Hibernate world - it is far more lightweight, it would be more correct to think of it as a query builder that also takes care of relation/upsertion/validation logic for you. It doesn't have out-of-the-box locking. It doesn't have transparent lazy loading. It doesn't have DB schema generation from models. If you need all of these - TypeORM or Sequelize would be a better fit for you, but if you don't need them or are OK with doing them yourself - Objection.js is by far a better option. It is predictable and never gets into your way.

kibertoad avatar Sep 11 '18 22:09 kibertoad

Objection has been used in various (10 -20) projects at Vincit even before it was released as open source. I can't give any names as I'm not sure which customers are public references for Vincit (I don't work there anymore). Maybe @elhigu can provide some kind of list?

koskimas avatar Sep 12 '18 18:09 koskimas

Maybe @elhigu can provide some kind of list?

I’m trying to get at least current number of companies + sizes in case we cannot give the names.

elhigu avatar Sep 13 '18 08:09 elhigu

@jzimmek you might also want to ask this on the node subreddit: reddit.com/r/node

There have been many mentions of objection on there that's how I first found out about it.

mitchellporter avatar Sep 13 '18 18:09 mitchellporter

We're (company of ~30+) using it pretty heavily since about a year now. Previously used bookshelf, and after being burned by it at some point we looked into alternatives. TypeORM looked really promising, but after some digging we hit some dead ends.

objection.js is really pleasent to use and I believe that everyone on our team (~10+) feels very comfortable with it. Documentation is top-notch and the community, even though it might not be as big as others, is extremely helpful. Also, the codebase itself is pretty clear and relatively easy to understand in comparison to other libs.

(thank you - to the creators and maintainers of objection.js - you make our work a lot more fun)

flipace avatar Sep 18 '18 09:09 flipace

Vincit (software contractor company of ~500 empoyees) is usually using objection.js for Node projects, which needs an ORM.

I'm still working on rough number of our clients who are using it (I haven't been at the office lately and I don't have access to check out client data myself).

elhigu avatar Sep 18 '18 20:09 elhigu

We're a small startup in Asia - been using objection since we first developed our product.

hibearpanda avatar Sep 23 '18 02:09 hibearpanda

Paul Jensen - London Node User Group https://www.youtube.com/watch?v=RyQ1MTVjYK8

heisian avatar Sep 24 '18 16:09 heisian

That would be nice link to add to readme or something :)

elhigu avatar Sep 25 '18 19:09 elhigu

We do! We're a health tech company doing online doctor visits in the US: https://www.heydoctor.co/

kylealwyn avatar Sep 26 '18 19:09 kylealwyn

looop-logo We're a small remote startup(5 devs ATM) called Looop. We rewrote our monolith app from Sequelize to objection.js and so far it has been a godsend. We have 76 tables in postgre so relation expressions are probably our most used feature. We still have like 15% of our API on sequelize, but every day we rip out more and more. BTW we expose our objection.js models to the consumers just by decorating them with decapi. Which is quite a unique way of doing that I'd say.

capaj avatar Oct 11 '18 21:10 capaj

I recently rewrote a version of the board game Risk using objection. I can't even begin to describe how much simpler it was to use objection.js than the older java bean code. I probably have 70% less code.

And when comparing objection to sequelize -- why on earth would you subject yourself to the added complexity of that tool?

Seriously, sequelize is bloated. And don't even get me started about sails and typeorm. I was about to give up on using node.js as the backend for the game, and then I found objection.js.

Bookshelf is a step in the right direction, but objection seems like a refactored, simplified bookshelf.

The game is going to be released as a Steam Early Release here in the next week:

http://www.denizenseven.com/

https://store.steampowered.com/app/952090/Grand_Strategy/

https://play.google.com/store/apps/details?id=org.grandstrategy.client

bryanbrunt avatar Oct 15 '18 22:10 bryanbrunt

We're a Portuguese tech company (company of ~30) that proudly uses objection.js in several projects that are currently running on production.

https://seegno.com

4e22b6b0c868e66b04d18f4985380254

joaonice avatar Oct 16 '18 11:10 joaonice

screen shot 2018-10-16 at 10 36 54 am

Ethos Technologies, Inc. - We offer term life insurance for citizens and residents in the U.S.

When we migrated from MongoDB to Postgres, we tried several ORMs and Objection.js stood out to us the most - it is one of the most solid, well-architected packages in our stack - can't recommend it enough!

Ethos - Insure Your Life

heisian avatar Oct 16 '18 17:10 heisian

I am ! Though you can only see the front-end right now, the back-end being not polished enough. 99% of the project being open source, a typical example being how json schemas are used to build an ajv validator for objection: here some schema here how objection/ajv is setup here some front-end It's a modern (well, though i'm not really the best programmer of the world, i can say the concepts are way on top of the cake) website editor i've been building upon objection and prosemirror and DOM. Soon to be available for all !

kapouer avatar Nov 02 '18 19:11 kapouer

We do at Social Native.

dearsaturn avatar Nov 08 '18 23:11 dearsaturn

dporganizer-primary-logo-rgb

We, DPOrganizer, are a Swedish startup with about ~20 developers. We choose objection.js for a new service after evaluating a bunch of different Node.js ORMs about a year ago. We have not looked back since and will continue to invest in this great lib, both as consumers and contributors.

objection.js itself, the maintainers and the surrounding community has been great to work with. A big thanks to everyone involved and keep up the awesome work!

johannessjoberg avatar Nov 09 '18 09:11 johannessjoberg

We've been using it at Cazana for 2+ years.

o8e avatar Dec 19 '18 12:12 o8e

when i was at https://mycujoo.tv we started experimenting with objection in late 2016. it went to production in early 2017 (i no longer work there). it's used in one of the largest backend services (thousands of reqs/s)

rictorres avatar Dec 19 '18 15:12 rictorres

As a personal experience in a side project when I searched what ORM should i use, I Find the most popular one which is sequelize, after about a month of working I suffered a lot, its documentation isn't clear, strange way of coding (at least for me). I decided to switch to objection after a lot of searching and comparing. Oh my god, I made a migration of weeks of work with sequelize in just a few days. Objection is such a great ORM, easy and clear documentation, predictable way of coding. In my opinion it is like eloquent for php.

kelgendy1204 avatar Jan 09 '19 08:01 kelgendy1204

At cioplenu we also switched from bookshelf to objection.js in the very early stages of our product. We are still a fairly small company but we have been very happy with that choice. The clear and concise design with excellent support for ES6 or Typescript, the option to easily fall back to knex when needed, the great compatibility with PosgreSQL, the great community and documentation really sets it apart.

AnianZ avatar Jan 09 '19 12:01 AnianZ

At Stylisted, Objection powers our entire API.

  • The way QueryBuilder is exposed for subclassing by models (or using HOCs) makes for many reusable patterns between models while allowing for idiosyncrasies among them
  • onBuild/onBuildKnex/onAfter2 (private API) operations provide low-level mechanisms to dynamically manipulate queries and results
  • Lifecycle methods make async side effects (transactional or not) very simple
  • Query context is great for authorization, filtering, and API request-specific behaviors that models should be aware of
  • Relation mappings are very flexible -- it's straightforward to create relations from a model to itself for complex self-joins, for example
  • Composite keys are handled correctly throughout the library
  • Model JSON schemas are a nice way of describing and validating inputs/outputs at many levels of abstraction (we use them in API resources now too), but you do need to get familiar with AJV's many options
  • Relation expressions with named filters, allowEager/eager/joinEager, and allowInsert/insertGraph make efficiently fetching/creating complex objects via single requests a snap

There's a lot more, but the point is this: the design of the library is elegant and intuitive. I've found it very easy to write code that I think will work based on the primitives provided and it just does. The source code is also easy to read, modify, and test. If you've come from Bookshelf, as we did, you'll know that none of those things hold true.

Objection gets lots of little things right by separating query building, data modeling, and validation, and doesn't encourage Rails-y patterns like polymorphism. This really reduces the O/R impedance mismatch that you experience from Bookshelf and many other ORMs.

jordaaash avatar Jan 11 '19 23:01 jordaaash

image

We use it for most of our node.js projects at Viv Labs (we're a Samsung company). We write the Bixby AI assistant found in many Samsung devices, like the Galaxy phones.

Objection.js is heavily used for https://bixbydevelopers.com, a place where you can learn how to build extensions to Bixby called "Capsules", (much like Alexa skills).

Since we use GraphQL, the most powerful feature that objection offers for this is the graphInsert / graphUpsert methods, which play extremely well into how GraphQL passes structured data and how we can use objection's graph methods to update our database.

I really like that it uses ajv as its validation backend, which makes sharing the models / schemas themselves cross-compatible with any of our other services that might want to do validation using our models (since ajv is json-schema spec compliant and objection also uses the spec to define the model), but do not require db access.

Another plus is how it's decoupled from the DBAL (database abstraction layer), where you use knex (or a knex-compatible API) to fill in that piece, which makes it very lightweight.

Overall, I recommend it to everyone who is looking for a lightweight ORM.

theogravity avatar Feb 14 '19 23:02 theogravity

I use Objection since version 1.4 on https://checklyhq.com, a monitoring SaaS. I use it for the reasons mentioned above. Feel free to use the logo or screenshot.

image

logo_script_racoon_horizontal_795

tnolet avatar Apr 14 '19 16:04 tnolet

image

We use it in a crowd sourced mapping application called Map Our Borders, it's perfect for our needs.

mapourborders.com

BIG Thanks!

brightrain avatar Apr 30 '19 04:04 brightrain

Hi,

The Dev Team of Surnet Telecom, which is an company that maintains and develop the payment gateway for the 90% of the Venezuelan Airlines, are actually using Objection.js in production environment with goods results.

moige01 avatar Jun 26 '19 13:06 moige01

Hi,

I am currently working on a project with a Fund in Asia.

We are using ObjectionJS in production.

I use it for NodeJS projects that require a connection to the supported SQLs.

It may be a little too much to ask If it could do Mongo DB as well :)

ais-one avatar Jun 29 '19 11:06 ais-one

We (Flux Work) are using Objection.js in production in a Node/Express-powered API server. It has been pleasant to use. Thanks for sharing such a great library!

broom9 avatar Aug 26 '19 17:08 broom9