All Projects → quinvit → microcore

quinvit / microcore

Licence: BSD-2-Clause license
.NET Core framework for inter-service communication

Programming Languages

C#
18002 projects

Projects that are alternatives of or similar to microcore

Di
PSR-11 compatible DI container and injector
Stars: ✭ 141 (+487.5%)
Mutual labels:  dependency-injection, container
Container
🚀 PHP Service Container with fast and cachable dependency injection.
Stars: ✭ 28 (+16.67%)
Mutual labels:  dependency-injection, container
Hiboot
hiboot is a high performance web and cli application framework with dependency injection support
Stars: ✭ 150 (+525%)
Mutual labels:  dependency-injection, container
Di
psr/container implementation for humans
Stars: ✭ 69 (+187.5%)
Mutual labels:  dependency-injection, container
Danf
Danf is a Node.js full-stack isomorphic OOP framework allowing to code the same way on both client and server sides. It helps you to make deep architectures and handle asynchronous flows in order to help in producing scalable, maintainable, testable and performant applications.
Stars: ✭ 58 (+141.67%)
Mutual labels:  asynchronous, dependency-injection
Bottlejs
A powerful dependency injection micro container for JavaScript applications
Stars: ✭ 1,171 (+4779.17%)
Mutual labels:  dependency-injection, container
Tsyringe
Lightweight dependency injection container for JavaScript/TypeScript
Stars: ✭ 2,761 (+11404.17%)
Mutual labels:  dependency-injection, container
Reflex
Minimal dependency injection framework for Unity
Stars: ✭ 263 (+995.83%)
Mutual labels:  dependency-injection, container
Future
🚀 R package: future: Unified Parallel and Distributed Processing in R for Everyone
Stars: ✭ 735 (+2962.5%)
Mutual labels:  asynchronous, distributed-computing
Awesome Distributed Deep Learning
A curated list of awesome Distributed Deep Learning resources.
Stars: ✭ 277 (+1054.17%)
Mutual labels:  asynchronous, distributed-computing
Mydi
moved to https://github.com/cekta/di
Stars: ✭ 21 (-12.5%)
Mutual labels:  dependency-injection, container
ssdp-client
The most lightweight asynchronous Java SSDP (Simple Service Discovery Protocol) Client
Stars: ✭ 46 (+91.67%)
Mutual labels:  asynchronous, discovery
Di
Dependency injection container in go (golang)
Stars: ✭ 390 (+1525%)
Mutual labels:  dependency-injection, container
Container Ioc
Inversion of Control container & Dependency Injection for Javascript and Node.js apps powered by Typescript.
Stars: ✭ 89 (+270.83%)
Mutual labels:  dependency-injection, container
dingo
Generated dependency injection containers in go (golang)
Stars: ✭ 75 (+212.5%)
Mutual labels:  dependency-injection, container
Container
A lightweight yet powerful IoC container for Go projects
Stars: ✭ 160 (+566.67%)
Mutual labels:  dependency-injection, container
Sleuth
A Go library for master-less peer-to-peer autodiscovery and RPC between HTTP services
Stars: ✭ 331 (+1279.17%)
Mutual labels:  distributed-computing, discovery
Polyel-Framework
⚡️ Voltis Core: A PHP framework based on Swoole from the ground up
Stars: ✭ 22 (-8.33%)
Mutual labels:  asynchronous, dependency-injection
Future.apply
🚀 R package: future.apply - Apply Function to Elements in Parallel using Futures
Stars: ✭ 159 (+562.5%)
Mutual labels:  asynchronous, distributed-computing
waiter
Dependency injection, Inversion of control container for rust with compile time binding.
Stars: ✭ 71 (+195.83%)
Mutual labels:  dependency-injection, container

Introduction

A forked version of https://github.com/gigya/microdot framework to .net core 2.2 with some changes:

  1. Replace NLog by https://serilog.net/
  2. Remove Orleans dependencies
  3. Remove Window Service feature to fully compatible in linux/container environment
  4. Replace Metrics.NET by https://www.app-metrics.io/

Original features:

  1. A service container which accepts command-line parameters that define how your service runs, e.g. as a command-line process, with or without console logs, the port your service will use to listen to incoming requests, whether it runs alone or as part of a cluster (and the cluster name to join), and whether it should shut down gracefully once a monitored parent PID exits. Sensible defaults are used based on your build configuration (Release/Debug). inter-service RPC allowing services to call one another. Each service exposes one or more C# interfaces, and clients call it by receiving an instance of an interface that performs transparent RPC using JSON over HTTP. This includes client-side load balancing (no need for a load balancer in front of your service), failover support, and secure comunication via HTTPS with certificates validations for sensitive services, if needed.
  2. Client-side, opt-in, transparent response caching between services. Useful to reduce end-to-end latency when many of your services rely on a few core services that serve relatively static data that is allowed to be eventually consistent. Also useful to reduce the impact of said services failing, while their responses are still cached by clients.
  3. Logging and Distributed Tracing facilities to help diagnosing issues in production, such as Exception Tracking. Client- and server-side events are emitted for every call and can be used to trace how a request was handled across all services (the call tree), and the latency each one contributed.
  4. Client-side Service discovery that supports manual configuration-based discovery (Consul stuffs are removed).
  5. All components emit performance metrics via https://www.app-metrics.io/ for real-time performance monitoring.
  6. Detailed Health Checks are provided for each subsystem, and can easily be extended to cover your service's external dependencies.
  7. A hierarchical configuration system based on XML files which allows overriding values based on where and how the microservice is hosted. The configuration is consumed from code via strongly-typed objects with automatic mapping and is refreshed at real time when XML files change.
  8. Highly modular design and first-class dependency injection support using Ninject, allowing you to swap out every component with your own implementation if needed.

Sample

Angular with MSA on Azure

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].