Per-module status of the Go port. Updated 2026-05-07 (v26.04.01).
Quality bar (latest sweep 2026-05-07):
- 52 / 52 modules build green (
go build ./...)
- 52 / 52 modules pass
go test ./...
- 52 / 52 modules pass
go test -race ./... (no data races)
- 0
go vet issues; gofmt -l . clean
- Cross-module integration tests in
tests/ cover CQRS → callbacks
→ HMAC-signed delivery → audit, HMAC-validated webhook ingestion,
and saga compensation rollback
- Sample wires the new
lifecycle.Application + actuator endpoints
Status semantics:
- Full — public surface implemented, tests green, ready for production wiring.
- Partial — public surface implemented, but the integration against an external system is contract-only (returns a typed
Err…NotImplemented sentinel). Wire is in scope for the next release.
- Stub — package and types declared, sentinel-error smoke tests guard the port assertion.
| Module |
Status |
Tests |
Notes |
kernel |
Full |
✅ |
RFC 7807, Result, Clock, errors, correlation |
utils |
Full |
✅ |
Try, Retry.Do, Slugify, AES-256-GCM, text/html templates, base64 |
validators |
Full |
✅ |
12+ validators with mod-97 / Luhn / regex / DNI checksums |
web |
Full |
✅ |
Problem renderer, correlation, idempotency (memory store), PII masking |
config |
Full |
✅ |
Layered Static / YAML / Env / Flag sources, profile selection, struct-tag binder |
i18n |
Full |
✅ |
Bundle + Accept-Language picker + LocaleMiddleware + region→language fallback |
| Module |
Status |
Tests |
Notes |
cache |
Full |
✅ |
Memory + NoOp + Fallback + typed wrapper. Redis adapter scheduled for next release. |
observability |
Full |
✅ |
slog + correlation, health composite, startup banner. OTel SDK wiring is the application's job. |
data |
Full |
✅ |
Filter DSL → SQL, paging, in-memory Repository. pgx-backed store scheduled. |
cqrs |
Full |
✅ |
Generic bus, validation + query-cache middleware |
eda |
Partial |
✅ |
In-memory broker is full; Kafka (franz-go) and RabbitMQ (amqp091-go) ports defined, factories return ErrKafkaUnavailable / ErrRabbitMQUnavailable. |
eventsourcing |
Full |
✅ |
AggregateRoot, MemoryEventStore (with optimistic concurrency), MemorySnapshotStore, ProjectionRunner. Postgres-backed store scheduled. |
orchestration |
Full |
✅ |
Saga, Workflow (DAG with parallel branches), TCC |
ruleengine |
Full |
✅ |
YAML AST + evaluator (Eq/Ne/Lt/Lte/Gt/Gte/In/NotIn/Contains/StartsWith/EndsWith/Matches/IsNull/IsNotNull) |
plugins |
Full |
✅ |
Registry + lifecycle SPI |
lifecycle |
Full |
✅ |
Application.Run(ctx) with ordered start/stop hooks, signal trap, http drain |
actuator |
Full |
✅ |
/actuator/{health,info,metrics,env,goroutines,version}; lock-free Counter/Gauge |
scheduling |
Full |
✅ |
Cron parser + Scheduler with FixedRate / FixedDelay / Cron triggers |
resilience |
Full |
✅ |
CircuitBreaker, RateLimiter, Bulkhead, Timeout + composable [Chain] |
security |
Full |
✅ |
Authentication ctx, [BearerMiddleware], path-pattern [FilterChain] RBAC |
migrations |
Full |
✅ |
V{n}__{desc}.sql runner with firefly_migrations table + checksum guard |
openapi |
Full |
✅ |
OAS 3.1 generator from Go types, /openapi.json, Swagger-UI shim |
sse |
Full |
✅ |
Server-Sent Events writer with heartbeat ping + Last-Event-Id helper |
transactional |
Full |
✅ |
WithTx, Exec, nested-tx participation, database/sql.DB integration |
testkit |
Full |
✅ |
HMAC signers (SignHMAC / SignStripe / SignGitHub / SignTwilio), SpyBroker |
| Module |
Status |
Tests |
Notes |
client |
Full |
✅ |
REST builder w/ retry, problem decode, correlation propagation |
client (SOAP / gRPC / WS) |
Stub |
✅ |
Placeholder builders return ErrTransportNotRegistered (asserted) |
configserver |
Full |
✅ |
Memory store; production deployments back onto a Git/database Store. |
idp |
Full |
✅ |
Port + types + sentinel guard |
idpinternaldb |
Full |
✅ |
bcrypt + HS256 JWT, full lifecycle |
idpkeycloak |
Stub |
✅ |
Port assertion + ErrNotImplemented smoke tests |
idpazuread |
Stub |
✅ |
Port assertion + ErrNotImplemented smoke tests |
idpawscognito |
Stub |
✅ |
Port assertion + ErrNotImplemented smoke tests |
ecm |
Full |
✅ |
LocalStore + in-memory document service |
ecmstorageaws |
Stub |
✅ |
Port assertion + ErrNotImplemented smoke tests |
ecmstorageazure |
Stub |
✅ |
Port assertion + ErrNotImplemented smoke tests |
ecmesignaturedocusign |
Stub |
✅ |
Port assertion + ErrNotImplemented smoke tests |
ecmesignatureadobesign |
Stub |
✅ |
Port assertion + ErrNotImplemented smoke tests |
ecmesignaturelogalty |
Stub |
✅ |
Port assertion + ErrNotImplemented smoke tests |
notifications |
Full |
✅ |
Dispatcher + MemoryChannel |
notificationssendgrid |
Stub |
✅ |
Port assertion + ErrNotImplemented smoke tests |
notificationsresend |
Stub |
✅ |
Port assertion + ErrNotImplemented smoke tests |
notificationstwilio |
Stub |
✅ |
Port assertion + ErrNotImplemented smoke tests |
notificationsfirebase |
Stub |
✅ |
Port assertion + ErrNotImplemented smoke tests |
callbacks |
Full |
✅ |
HMAC-signing dispatcher + retry + audit + REST admin + SDK |
webhooks |
Full |
✅ |
Generic HMAC + Stripe + GitHub + Twilio validators; pipeline + DLQ + ingestion endpoint + SDK |
| Module |
Status |
Tests |
Notes |
startercore |
Full |
✅ |
Default in-memory wiring; consumer supplies overrides |
starterapplication |
Full |
✅ |
Composes startercore + plugins.Registry |
starterdomain |
Full |
✅ |
Composes startercore + in-memory event-sourcing stores |
starterdata |
Full |
✅ |
Composes startercore; consumer supplies the DB |
backoffice |
Full |
✅ |
starterapplication + back-office context middleware |
| Module |
Status |
Tests |
Notes |
tests |
Full |
✅ |
Cross-module integration suite (CQRS+callbacks roundtrip, webhook ingestion, saga rollback) |
| Path |
Status |
Tests |
Notes |
samples/orders |
Full |
✅ |
Five-package layout, idempotent POST + cached GET, end-to-end test green |
The sequencing for the 26.05.x cycle is, in priority order:
- Wire the EDA Kafka adapter against
github.com/twmb/franz-go.
- Wire the EDA RabbitMQ adapter against
github.com/rabbitmq/amqp091-go.
- Wire the cache Redis adapter against
github.com/redis/go-redis/v9.
- Wire the data Postgres repository against
github.com/jackc/pgx/v5
with Flyway-equivalent migrations.
- Wire the IDP adapters in this order: Keycloak (admin REST API),
AWS Cognito (
AWSSDK.CognitoIdentityProvider), Azure AD (MSAL +
Microsoft Graph).
- Wire the ECM storage and e-signature adapters.
- Wire the notifications channel adapters.
Each stub today returns a typed sentinel error (ErrNotImplemented,
ErrKafkaUnavailable, etc.) — the contract is locked, the wire is the
follow-up. Stub modules already carry sentinel-assertion smoke tests so
regressions in port shape get caught the moment the real implementation
lands.