differential
The gist
differential | The gist | |
---|---|---|
3 | 26 | |
103 | 5,233 | |
14.6% | 3.5% | |
9.7 | 9.7 | |
about 3 hours ago | 5 days ago | |
TypeScript | TypeScript | |
Apache License 2.0 | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
differential
-
Differential: Type safe RPC that feels like local functions
Fair question.
> But for the service to start it needs to get a request (via lambda invocation).
A service can also start by manually `.invoke`-ing the lambda.
The control-plane will start the lambda function when there's work. Lambda "asks" for work to do. Once work has finished, lambda function exits.
When deploying, we start the lambda function once so it can come out for air and advertise itself to the control-plane.
This is an affordance we do only do for lambda, and currently in development with our deployment offering here [1]
[1] https://github.com/differentialhq/differential/blob/236ffc53...
-
Show HN: Differential – TypeScript services with the DX of local functions
Hello HN!
Over the last few months I've been working on Differential.dev.
It's a tool that I built to solve the problem of connecting n domain services, with the simplest possible abstraction - function calls. (Typescript only for now)
Internally it uses a service bus that ferries functions calls, but all of this is abstracted away from a developer. You can use it (as I have) in brown-field projects to split a monolithic service to domain-driven services, without splitting the codebase.
It's fully open-source under a GPL 3.0 License: https://github.com/differentialHQ/differential
Keen for feedback, if you have any. You can also contact me at nadeesha at differential.dev.
The gist
-
Object Narrowing in Typescript with Graphile Worker
Graphile worker has been great for me because it's a library that works with Postgres that allows me to queue jobs and execute them on the server without adding too many additional layers of complexity for being able to accomplish async tasks. (I'm aware of how popular bull is, but I don't want to add another data-store only for async tasks)
-
Job Schedulers for Node: Bull or Agenda?
Bull is currently in maintenance mode, we are only fixing bugs. For new features check BullMQ, a modern rewritten implementation in Typescript. You are still very welcome to use Bull if it suits your needs, which is a safe, battle-tested library.
-
Are there any generally accepted standards for inter-microservice communication? Or does everyone just go it their own?
I use bullmq with node
-
Next.js background jobs
You might consider using a queue for processing the request. I've found bullMQ, which works with Redis, to be a nice developer experience.
-
What is a good background scheduler?
BullMQ is a pretty solid choice: https://github.com/taskforcesh/bullmq It's the successor of Bull: https://github.com/OptimalBits/bull
-
How to schedule tasks in a Node.js app 🕙
BullMQ
-
First time building microservice-based application
For Node.JS you can use something like BullMQ (https://github.com/taskforcesh/bullmq) and then dispatch jobs to the message queue with your worker handling the jobs. You can read about an example for Bull MQ here (https://deadsimplechat.com/blog/best-nodejs-schedulers/#2-bull)
-
Is my health check endpoint good enough?
bullmq seems like an open issue
-
Help implementing Heroku Data For Redis (+bull & throng) / `ioredis`
In order to try and mitigate the OOMs. I read the Background Jobs in Node.JS with Redis blog post and implemented Heroku Data For Redis with ioredis, BullMQ and Throng,
- BullMQ – fastest, most reliable, Redis-based distributed queue for Node
What are some alternatives?
zsyntax - Automated theorem prover for a linear logic-based calculus for molecular biology.
bull - Premium Queue package for handling distributed jobs and messages in NodeJS.
Bee-Queue - A simple, fast, robust job/task queue for Node.js, backed by Redis.
better-queue - Better Queue for NodeJS
RedisSMQ - A simple high-performance Redis message queue for Node.js.
kue - Kue is a priority job queue backed by redis, built for node.js.
bree - Bree is a Node.js and JavaScript job task scheduler with worker threads, cron, Date, and human syntax. Built for @ladjs, @forwardemail, @spamscanner, @cabinjs.
node-resque - Node.js Background jobs backed by redis.
Conveyor MQ - A fast, robust and extensible distributed task/job queue for Node.js, powered by Redis.
agenda - Lightweight job scheduling for Node.js
p-throttle - Throttle promise-returning & async functions
growthbook - Open Source Feature Flagging and A/B Testing Platform