Coder Social home page Coder Social logo

toa-io / toa Goto Github PK

View Code? Open in Web Editor NEW
3.0 3.0 1.0 13.61 MB

Microservice operations distributed runtime

Home Page: https://toa.io

License: MIT License

Dockerfile 0.08% Shell 0.24% JavaScript 53.66% TypeScript 26.41% Gherkin 19.60%
distributed-systems eventual-consistency microservices-architecture

toa's Introduction

Toa

Runtime for low code eventually consistent distributed systems.

Status

The project is under heavy development, while being used in production by its authors. Non-scattered documentation is coming this fall.

Features

Runtime

  • Interservice communications
    • Reliable RPC and Events (ComQ)
    • Flow control
    • Eventual consistency guarantee (not yet)
    • Uniform interface
      • Input/query segregation
      • Successful rejections
      • Distributed exception handling
    • Transparent service discovery
    • Multi-protocol transmission
      • built-in support for AMQP and HTTP
    • In-memory communications
    • Messages validation
  • Persistent state management
    • Concurrency control
    • Batching
    • Data validation
    • Built-in implementations
      • MongoDB
      • SQL (Knex)
  • Configuration with secrets
  • API Gateway
  • Realtime events
  • BLOB storage
    • MIME type detection and validation
    • Deduplication
    • Arbitrary orderings
    • Providers: file system, Amazon S3
  • Transient state
  • External communications governance
    • HTTP
    • AMQP

Development

  • Language interoperability
  • Service prototyping (inheritance)
    • Generic prototype
  • Data and operations contracts
  • Declarative API Gateway endpoints with authorization policies
  • Integration tests SDK
  • Runtime bootloader API
  • Development environment configuration
  • CLI
  • Extensibility:
    • Persistent storages
    • Communication protocols
    • Runtime core abstractions
    • Arbitrary services

Operations

  • Standalone infrastructure configuration
  • Multi-environment configuration
  • Components distribution across containers
  • One-command fully automated deployment
    • Preset multi-arch docker images
    • Helm deployment to kubernetes
  • CLI utilities
    • Secrets management
    • Remote Container Shell

toa's People

Contributors

temich avatar toabot avatar tinovyatkin avatar aircrisp avatar burlakilia avatar dependabot[bot] avatar

Stargazers

Kai Koenig avatar  avatar Eduard Gomoliako avatar

Watchers

 avatar Tim avatar  avatar

Forkers

burlakilia

toa's Issues

Operations HTTP context

Use cases

  • client ip
  • custom headers

Questions

  • How operation access http context?
  • Should operation be accessible without http context (interservice call)?
  • Is context always optional?
  • Is operation bounded to HTTP calls only?

RPC

  • error handling
  • exception handling

Refactor runtime

  • runtime
  • call
  • endpoint
  • invocation
  • locator
  • operation
  • proxy
  • query
  • schema (standalone repo with schemas)
  • state (predefined properties)

Blobs

  • schema type?
  • creating?
  • transferring?
  • http gateway?
  • standalone blobs gateway?

API Gateway Sockets

  • event routing
  • operation calls
  • reply routing
  • scaling (user shards / connection shards)
  • events/replies buffer
  • GET/events consistency problem (version?)
  • STOMP?

Fix create operation

  • add domain resolution (promt?)
  • add operation manifest
  • fix: name is set to path instead of basename

State operators

  • create collection
  • update collection
  • indexes

Is this framework responsibility?

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.