Nothing here yet.
Nothing here yet.
No blogs yet.
It looks like both the scenarios are pretty much the same. Single-Point-Of-Failure. In your first scenario, your BDD service might crash, on the other it's the database, there's not much of a difference. Microservices are basically systems, that need to manage pretty much everything of their own, which means they require a dedicated data storage. Each microservice is suppose to run independently, so having every microservice pointing to a single DB, doesn't make sense. Read this article for more details on microservice https://martinfowler.com/articles/microservices.html Hope this helps!
Approach #1 doesn't seem all that bad, I feel that's the way to go, when it comes to authorization at granular level, the permission's data needs to persisted under the service's DB. Syncing data across services in general is a common problem while building microservices, and it's possible via MQ s (RabbitMQ, Kafka etc..) Use Kafka (or Xyz MQ) to stream data across services, and let the service decide, if the incoming data makes sense, which it will then, either save to it's DB, or discard it. I'm pretty sure consistency won't be a problem at all, with all the retry mechanism available. Hope this helps!
Node.js is a JavaScript runtime, so like Nicolás Parada mentioned, if you know JavaScript well, go for it. I would highly recommend, you to take a look at more functional programming language like Elixir , which is simple and elegant, and is highly influenced by Ruby / Clojure / Rust and Erlang of-course.
I don't think Koa and Express have to compete each other, they differ a lot in style, but they do have similarities too, Express is loaded up with middlewares, routing and a lot of goodies, but Koa is basically the bare bones, it let's you decide what middlewares to use, so its sort of easier to maintain, since you have less moving parts, when compared to Express and yeah Koa is generator (Generator Fn) heavy, so you deal less with callbacks when compared to Express, but we could solve that by using Promises etc. Like mentioned in their docs - "If you'd like to be closer to node.js and traditional node.js-style coding, you probably want to stick to Connect/Express or similar frameworks. If you want to get rid of callbacks, use Koa.", it's just a matter of choice, IMO Express has better support so. Anyway, they both get things done.
Currently using mongoose at work, not a great fan of it, the documentation isn't up to the mark, seriously, it isn't, I'm not sure if I'm the only one struggling with mongoose documentation. Anyway I would recommend Iridium , Great documentation, and easy to use.