Giter VIP home page Giter VIP logo

synaptic.net's Introduction

Synaptic.NET

Synaptic.NET is heavily influenced by Moleculer. The concept is simple: Break a system into various blocks of micro-services written into specialized processes instead of building flat Http Rest / Grpc APIs.

Not Clear ? Keep following...

Services

A service is an unit of work, like how you'll represent yourself a micro-service in a SOA.

  • A service implements the ISynapticService
  • A service is made of Actions, Event Handlers And Methods
  • A service can be exposed through a REST Api (but not ideally)

Actions

  • Actions are similar to the concept of actions in the MVC model. There are reponsible for processing requests and returning result (very important)
  • Actions are the public methods of a SynapticService
  • Each executing action have a bounded SynapticContext (like an HttpContext) that contains the request data and infos.

Events Handlers

  • Events Handlers are methods that responds to specific events and process them.
  • Event Handlers have no return values
  • Event Handlers are essentially the protected methods of a SynapticService.
  • Event Handlers can/are decorated with a 'SynapticEventHandler' attribute.
  • Event handlers are generic methods of the type of event they process

Methods

Any others private methods inside a SynapticService cannot be exposed nor accessed from outside that service. They can be used like bare function to better organize things.


Available Features

None

TODOs

Note: Todos may not be checked following the order they are defined (from bottom to top).

Advanced

  • Add NATS Transport
  • Make services stateful only for the span of time they are executed in order for their state to be serializable and in some way 'restorable'

Timeline

  • Add support for monitoring and healthchecks (included in aspnetcore)
  • Build the Topogon app
  • Cleanup APIs
  • Build samples and use cases
  • Build client for various langages (JS/TS, Kotlin, Java, Golang, Python, etc.)
  • Provide some guides for integrating with load balancers
  • Integrate the REST Facade with Traefik
  • Integrate the REST Facade with YARP
  • Make services and actions exposable to the REST Facade
  • Add the REST Facade
  • Start Writing a wiki for Synaptic.NET
  • Add a client for making requests to services
  • Conform to security specs
  • Add Support for JwtBearer authentication
  • Add support for Authentication (use aspnetcore)
  • Add support for Authorization via the AuthorizeAttribute (use aspnetcore)
  • Add support for the NonActionAttribute
  • Add support for services dependencies via the SynapticServiceDependenciesAttribute.
  • Add automated performance benchmarking
  • Add various utilities to ease services building
  • Add support for Caching
  • Finish service discovery
  • Add Grpc Transport
  • Add Transports
  • Add support for Service Discovery (based on a topics topology)
    Each service publish at regular time interval, it health status, available actions and listened events.
  • Add support for IActionResult, ActionResult or a similar concept to wrap Action's Response
  • Add Specialized Exceptions
  • Add custom errors System
  • Add Model Binding for databound actions/events
  • Add support for a shared configuration center.
  • Add routing specs
    (sd.availbility, sd.health-checks, sd.actions-view, sd.events-subs*)
  • Implement a viable Service Broker
  • Add Services/Actions activator
  • Add Event Resolvers
  • Add Actions Resolvers
  • Add Synaptic.NET and associated types to the AspnetCore dependencies container
  • Add Automated testing
  • Add building workflow
  • Define Project's Licence
  • Define Issues handling process
  • Define contributing Guide and branchs setup

synaptic.net's People

Contributors

ergen35 avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.