Skip to content

toa-io/toa

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3,206 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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 some time later.

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
    • Data validation
    • Multi-document transactions
    • Invariants (guards)
    • Built-in implementations
      • MongoDB
      • SQL (Knex)
  • Configuration with secrets
  • API Gateway
  • Distributed lock manager
  • Telemetry
    • Structured logs
  • Realtime events
  • BLOB storage
    • MIME type detection and validation
    • Providers: file system, Amazon S3, Cloudinary
  • Transient state
  • External communications governance
    • HTTP
    • AMQP
    • Google PubSub

Development

  • Language interoperability
  • Service prototyping (inheritance)
    • Generic prototype
  • Data and operations schemas
  • 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

  • Standardized containerization
  • Resource management
  • Environment variables
  • Standalone infrastructure configuration
  • One-command fully automated deployment
    • Preset multi-arch docker images
    • Helm deployment to kubernetes
  • CLI utilities
    • Secrets management
    • Remote container shell

Releases

Used by

Contributors

Languages