All Projects → yamalight → Microwork

yamalight / Microwork

Microwork - simple creation of distributed scalable microservices in node.js with RabbitMQ

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Microwork

Surging
Surging is a micro-service engine that provides a lightweight, high-performance, modular RPC request pipeline. The service engine supports http, TCP, WS,Grpc, Thrift,Mqtt, UDP, and DNS protocols. It uses ZooKeeper and Consul as a registry, and integrates it. Hash, random, polling, Fair Polling as a load balancing algorithm, built-in service gove…
Stars: ✭ 3,088 (+3083.51%)
Mutual labels:  microservices, rabbitmq
Dotnetcore Microservices Poc
Very simplified insurance sales system made in a microservices architecture using .NET Core
Stars: ✭ 1,304 (+1244.33%)
Mutual labels:  microservices, rabbitmq
Hexagon
Hexagon is a microservices toolkit written in Kotlin. Its purpose is to ease the building of services (Web applications, APIs or queue consumers) that run inside a cloud platform.
Stars: ✭ 336 (+246.39%)
Mutual labels:  microservices, rabbitmq
Hippo
💨A well crafted go packages that help you build robust, reliable, maintainable microservices.
Stars: ✭ 134 (+38.14%)
Mutual labels:  microservices, rabbitmq
Tackle
💯 percent reliable microservice communication
Stars: ✭ 44 (-54.64%)
Mutual labels:  microservices, rabbitmq
Nameko Examples
Nameko microservices example
Stars: ✭ 203 (+109.28%)
Mutual labels:  microservices, rabbitmq
Nestjs
A collection of badass modules and utilities to help you level up your NestJS applications 🚀
Stars: ✭ 475 (+389.69%)
Mutual labels:  microservices, rabbitmq
Enqueue Bundle
[READ-ONLY] Message queue bundle for Symfony. RabbitMQ, Amazon SQS, Redis, Service bus, Async events, RPC over MQ and a lot more
Stars: ✭ 233 (+140.21%)
Mutual labels:  job-queue, rabbitmq
Remit
RabbitMQ-backed microservices supporting RPC, pubsub, automatic service discovery and scaling with no code changes.
Stars: ✭ 24 (-75.26%)
Mutual labels:  microservices, rabbitmq
Pitstop
This repo contains a sample application based on a Garage Management System for Pitstop - a fictitious garage. The primary goal of this sample is to demonstrate several software-architecture concepts like: Microservices, CQRS, Event Sourcing, Domain Driven Design (DDD), Eventual Consistency.
Stars: ✭ 708 (+629.9%)
Mutual labels:  microservices, rabbitmq
Java Interview
At the beginning, it was the repository with questions from Java interviews. Currently, it's more like knowledge base with useful links.
Stars: ✭ 114 (+17.53%)
Mutual labels:  microservices, rabbitmq
Spring Cloud Stream Demo
Simple Event Driven Microservices with Spring Cloud Stream
Stars: ✭ 58 (-40.21%)
Mutual labels:  microservices, rabbitmq
Dotnet Istanbul Microservices Demo
This is the demo application that i created for my talk 'Microservice Architecture & Implementation with Asp.Net Core' at Dotnet İstanbul Meetup Group.
Stars: ✭ 109 (+12.37%)
Mutual labels:  microservices, rabbitmq
Digital Restaurant
DDD. Event sourcing. CQRS. REST. Modular. Microservices. Kotlin. Spring. Axon platform. Apache Kafka. RabbitMQ
Stars: ✭ 222 (+128.87%)
Mutual labels:  microservices, rabbitmq
Quiz
Example real time quiz application with .NET Core, React, DDD, Event Sourcing, Docker and built-in infrastructure for CI/CD with k8s, jenkins and helm
Stars: ✭ 100 (+3.09%)
Mutual labels:  microservices, rabbitmq
Netcoremicroservicessample
Sample using micro services in .NET Core 3.1 Focusing on clean code
Stars: ✭ 403 (+315.46%)
Mutual labels:  microservices, rabbitmq
Enqueue Dev
Message Queue, Job Queue, Broadcasting, WebSockets packages for PHP, Symfony, Laravel, Magento. DEVELOPMENT REPOSITORY - provided by Forma-Pro
Stars: ✭ 1,977 (+1938.14%)
Mutual labels:  job-queue, rabbitmq
Practical.cleanarchitecture
Asp.Net Core 5 Clean Architecture (Microservices, Modular Monolith, Monolith) samples (+Blazor, Angular 11, React 17, Vue 2.6), Domain-Driven Design, CQRS, Event Sourcing, SOLID, Asp.Net Core Identity Custom Storage, Identity Server 4 Admin UI, Entity Framework Core, Selenium E2E Testing, SignalR Notification, Hangfire Tasks Scheduling, Health Checks, Security Headers, ...
Stars: ✭ 639 (+558.76%)
Mutual labels:  microservices, rabbitmq
Microservices Using Rabbitmq
Python & Go microservices on Docker, using RabbitMQ for asynchronous IPC
Stars: ✭ 51 (-47.42%)
Mutual labels:  microservices, rabbitmq
Rabbus
A tiny wrapper over amqp exchanges and queues 🚌 ✨
Stars: ✭ 86 (-11.34%)
Mutual labels:  microservices, rabbitmq

Microwork.js

npm MIT Build Status Coverage Status

Microwork.js is a library for simple creation of distributed scalable microservices in node.js with RabbitMQ.

Installation

npm install --save microwork

Requirements

Since Microwork.js is written in ES6 and it uses async/await - it requires latest stable node (7.x or later).

Features

  • Simple interface for building distributed (micro)services
  • Easy way to scale services both horizontally (by adding more nodes) and vertically (by adding more subscribers)
  • Extensible with plugins

Usage

Quick start

Example service that subscribe to messages from do.work topic and does some work with incoming data (in this case it just appends world! to incoming string):

const Microwork = require('microwork');

// create task runner
const runner = new Microwork({host: 'your.rabbit.host', exchange: 'your.exchange'});
// add worker to specific topic
await runner.subscribe('do.work', (msg, reply) => {
  reply('response.topic', msg + ' world!');
});
// after work is done - cleanup
await runner.stop();

Example service that subscribes to messages from response.topic and logs them to console, as well as sends processing request to previously defined service:

const Microwork = require('microwork');

// create master
const master = new Microwork({host: 'your.rabbit.host', exchange: 'your.exchange'});
// listen for reply from workers
await master.subscribe('response.topic', msg => {
  console.log(msg); // -> "hello world!"
});
// send message to workers
await master.send('do.work', 'hello');

// after work is done - cleanup
await master.stop();

For more examples see project documentation.

License

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].