npm.io
0.24.0-alpha.0 • Published 2 years ago

@toa.io/generic

Licence
MIT
Version
0.24.0-alpha.0
Deps
1
Size
90 kB
Vulns
1
Weekly
0
Stars
3

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
    • Distributed tracing
  • Realtime events
  • BLOB storage
    • MIME type detection and validation
    • Providers: file system, Amazon S3, Cloudinary
  • Transient state
  • Built-in Fetch with retries and telemetry
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