Skip to content

toa-io/toa

Repository files navigation

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