Glossary#

Cache-Control#

The cache control is a response header of an http request defined by HTTP/1.1. If contains caching directive used by browsers, CDN and any proxy that consume HTTP. https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control

cascading failure#

A cascading failure is a process in a system of interconnected parts in which the failure of one or few parts can trigger the failure of other parts and so on. https://en.wikipedia.org/wiki/Cascading_failure

Circuit Breaker#

Design pattern used in software development. It is used to detect failures and encapsulates the logic of preventing a failure from constantly recurring, during maintenance, temporary external system failure or unexpected system difficulties.

Source: https://en.wikipedia.org/wiki/Circuit_breaker_design_pattern

client_name#

A unique name for your client. The client_name is the identifier of the client. It should be reuse in the resource declaration.

client-side service discovery#

The service registry is called by the client to find a host of a service.

Consul#
A software made to designed for service discovery.
Fail Fast Model#

In systems design, a fail-fast system is one which immediately reports at its interface any condition that is likely to indicate a failure. Fail-fast systems are usually designed to stop normal operation rather than attempt to continue a possibly flawed process.

Prometheus#
A software used for event monitoring and alerting.
Pydantic#
Data validation using python type annotations.
Type hints provides user friendly errors when data is invalid.
result library#
A simple Result type for Python 3 inspired by Rust, fully type annotated.
server-side service discovery#

The client is calling a proxy server that maintain its backends server list by receiving notification of the service registry to maintain.

service#
A process that expose an API.
In Blacksmith, service are always REST HTTP API that serve Json documents.
service discovery#

A service discovery is a mechanism to determin the endpoint of a service, in a rest api, it is basically a function that build an url prefix from a service and a version.

service registry#

The service registry is a catalog of known service that is maintained live. Sercice may anounce themselve in the service registry to get it up to date, or it may be done by a tier component. The service registry is a critical service that must be highly available.

version#

Sometime, services are versioned, the version can be declared as a separate parameter for readability. The version is None in case service does not expose a version number.

whitesmith#
A toolbox for testing the blacksmith client.
It generate skells to implement fake API consumed and pytest fixtures.
resource#

A resource is a json document that is accessible and manipulable using http method.