Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions GOVERNANCE.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,8 @@ In general, the TSC is responsible for:
- Deciding how any certification or compatibility programme operates
- Coordinating any marketing, events, or communications regarding the project.

To aid in decision making, a set of principles guiding what TAMS is and how it develops are set out in [PRINCIPLES.md](./PRINCIPLES.md)

Furthermore during the Setup and Transition Periods, the TSC is charged with:

- Finding a suitable legal and administrative framework through which the project should operate
Expand Down
40 changes: 40 additions & 0 deletions PRINCIPLES.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# Principles

These principles describe both what TAMS is (and isn’t) as a technology, and also some of the principles that define it’s direction and development.
The TSC use these to guide technical decision making and shape the direction of the project.

## What is TAMS?

Overall, TAMS and the TAMS API is an interface for writing media to and reading it from a store.
It provides a framework for sharing that media between systems, solutions and organisations using a content-centric, cloud-native approach, all focused around a store (or a number of stores).

1. TAMS is designed as an interoperable media framework.
Having TAMS support should enable integration with other TAMS solutions, removing or minimising the need for bespoke integrations.
2. TAMS is agnostic to clouds, codecs, and containers and is intended to deploy anywhere, including on-premise and at the edge.
It may describe how to integrate with a particular technology, but the core API can be implemented in many ways for many purposes.
3. TAMS is for media.
It is primarily designed for media-like workflows on a timeline, however it also works for data-as-media that is accessed through the index of time (and as such, has data as a supported type).
4. TAMS supports fast-turnaround/near-live workflows, but also works well for file-based workflows, and in some cases can take the place of live signal-centric workflows, if appropriate latency tradeoffs can be made.
5. TAMS does not implement a MAM.
It should contain the minimum possible content discovery and library management features required for effective interoperability.
Anything else should go in a system designed for that purpose.
6. TAMS is open source to reduce barriers to entry and maximise adoption: anyone should be able to participate in the ecosystem, providing maximum choice.
7. TAMS is a living specification.
It will evolve over time to meet the needs of the community.
8. The TAMS repository contains the core specification and schemas, along with various examples to help implementers and Application Notes covering best practices and possible approaches to specific areas or technologies.

## Guiding Principles

1. TAMS is a small sharp tool.
It does not solve all problems in all ways.
2. TAMS and the API should be as simple as possible, and always strike a balance across aspects such as complexity, capability, scalability.
3. TAMS API servers and clients with compatible versions should interoperate.
The specification is prescriptive and opinionated where necessary to enable this.
4. However we aim to give users as much flexibility as possible while ensuring interoperability.
5. The specification is agnostic to implementation, and we avoid implementation details driving decision-making (however we strike a balance in writing a specification that can be implemented)
6. Optional features and capabilities are used cautiously, to simplify client implementations and reduce integration engineering work.
7. We re-use patterns and approaches where possible: both within TAMS, and drawing on existing approaches in other technologies.
8. Breaking changes are possible, but we strike a balance to minimise impact and maximise benefit.
We make decisions with strong engineering justification and consider the impact of change, through an open decision process.
9. The TAMS community is governed by a balanced mix of users (broadcasters, content owners etc.) and technology/solution vendors.
10. When common requirements arise, or the need for a common piece of functionality becomes clear, we attempt to standardise an approach either in the API Specification or an Application Note to enable interoperability.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ Users of TAMS are insulated from the details of the underlying storage.
- [Rendered Specification](https://bbc.github.io/tams)
- [Supporting Documentation (Application notes and Decision Records)](./docs/README.md)
- [Example API Usage Scripts](./examples/README.md)
- [Description of governance process](./GOVERNANCE.md)

## Design

Expand Down
Loading