Baseplate¶
Baseplate is a framework to build services on and a library of common and well-tested code to share. Its goal is to provide all the common things a service needs with as few surprises as possible. It can be divided up into three distinct categories of components, listed below.
The Instrumentation Framework¶
Baseplate provides an instrumentation framework that integrates with popular application frameworks to provide automatic diagnostics to services.
- baseplate.core: The skeleton of the instrumentation framework
- baseplate.context: Integration with client libraries
- baseplate.context.cassandra: Cassandra CQL Client
- baseplate.context.hvac: Client for using Vault's advanced features
- baseplate.context.kombu: Client for publishing to queues
- baseplate.context.memcache: Memcached Client
- baseplate.context.redis: Redis Client
- baseplate.context.sqlalchemy: SQL Client for relational databases (e.g. PostgreSQL)
- baseplate.context.thrift: Thrift client for RPC to other backend services
- baseplate.integration: Integration with application frameworks
- baseplate.diagnostics: Diagnostics observers
The Library¶
Baseplate also provides a collection of “extra batteries”. These independent modules provide commonly needed functionality to applications. They can be used separately from the rest of Baseplate.
- baseplate: General purpose helpers
- baseplate.config: Configuration parsing
- baseplate.crypto: Cryptographic Primitives
- baseplate.events: Events for the data pipeline
- baseplate.experiments: Experiments framework
- baseplate.file_watcher: Read files from disk as they change
- baseplate.live_data: Tools for centralized data that updates near instantly
- baseplate.message_queue: POSIX IPC Message Queues
- baseplate.metrics: Counters, timers, gauges, and histograms for statsd
- baseplate.queue_consumer: Consume messages from a queue
- baseplate.random: Extensions to the standard library's random module
- baseplate.ratelimit: Ratelimit counters in memcached or redis
- baseplate.retry: Policies for retrying operations
- baseplate.secrets: Secure storage and access to secret tokens and credentials
- baseplate.thrift_pool: A Thrift client connection pool
- baseplate.service_discovery: Integration with Synapse service discovery