Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Kaftar Kaftar logo

Kaftar is a Go message-delivery service with HTTP and RabbitMQ submission, scheduling, retries, and Email, SMS, Mattermost, Bale, and outbound HTTP providers. It is being migrated toward a public project; an operational console is planned but not implemented.

Table of Contents

Overview

The project is being rebuilt from an internal service into a maintainable public system. Its target scope includes durable message scheduling, retries, provider extensions, HTTP and queue contracts, operational visibility, and a management console.

The server and console will remain independently buildable and deployable. A separate combined image will eventually package both for installations that prefer a single container.

Project Status

The server is migrated into server/ and builds with Go 1.26.5. PostgreSQL and RabbitMQ remain required. The console and combined image are not implemented.

Source-migration task 0.1, reference-retirement task 0.1.1, delivery hardening task 0.1.2, and provider hardening task 0.1.3 are complete.

The approved hardening design adds durable reconciliation, channel-scoped idempotency, fenced delivery claims, and stricter provider contracts. External delivery remains at-least-once, not exactly-once.

Development use only: the API has no authentication, and database/broker transport TLS is not configured. Do not expose it publicly. See the migration inventory for compatibility details and remaining gates.

Client SDKs will be implemented in independent repositories, one per language; they are not part of this server migration.

The retired reference checkout is not needed to build or run server/. It must not be restored inside this repository.

Planned Repository Layout

Directories are created only when approved work requires them:

server/                     Go server
server/Dockerfile           Standalone server image
console/                    Planned web console (not created)
console/Dockerfile          Planned standalone console image
deploy/combined.Dockerfile  Planned supervised combined image
docs/                       Detailed project documentation
todo/                       Ordered implementation tasks
docker-compose.yml          Local server, PostgreSQL, and RabbitMQ

Quick Start

From the repository root, with Docker Engine and the Compose plugin installed:

cp server/.env.example server/.env
# Set nonempty PostgreSQL and RabbitMQ passwords in server/.env.
docker compose --env-file server/.env up --build -d --wait
curl --fail http://localhost:1404/health

The health endpoint returns "Ok". Providers are disabled by default; configure and enable only those you need in the ignored server/.env. The API is bound to localhost. Use disposable development credentials for Compose, never production secrets.

go -C server test ./...
go -C server vet ./...
go -C server build -o /tmp/kaftar ./cmd
docker compose --env-file server/.env down

Native builds require Go 1.26.5; the test suite additionally requires a C compiler for its SQLite fixtures. See server development for configuration and host-native startup. down preserves local database volumes.

Documentation

Detailed architecture, development, API, and operations documentation will be added only as the corresponding work is approved.

Development Rules

Project-wide contribution rules are defined in AGENTS.md. More specific rules may exist in semantic directories and apply together with the root rules.

Commits use English imperative Conventional Commit messages. Behavioral changes require tests, relevant documentation updates, and recorded validation.

Migration History

The temporary arcaptcha-kaftar/ reference checkout has been retired. Reviewed migration evidence and compatibility decisions remain in the migration inventory and completed task records. Unapproved redesign research lives under todo/future/.

About

No description, website, or topics provided.

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages