Skip to main content
โšก Kotlin ยท Spring Boot ยท Coroutines

File โ†” Event
Transformation Engine

Spec-driven, stream-first, and built to extend. Parse any file format, correct and validate records, then deliver to any destination โ€” all without touching core code.

๐Ÿ“ฅ
Ingest
SFTP ยท Kafka ยท REST ยท S3
โ†’
๐Ÿ“„
Parse
Any file format
โ†’
โœ๏ธ
Correct
Normalize & enrich
โ†’
โœ…
Validate
Rule-based checks
โ†’
๐Ÿ“ค
Deliver
Any destination
5 modules
6 integration types
โˆž file formats
0 restarts to add connectors

Built to grow without breaking

Every piece of Transform Platform follows the Open/Closed principle โ€” add capabilities without touching what already works.

Connect to anything, dynamically

Add or update client connections via API at runtime. Credentials are AES-256 encrypted, connectors hot-reload without service restarts.

Modular by design

Each module has a single responsibility. Deploy only what you need.

platform-commonShared models, interfaces & utilities
platform-corePipeline engine ยท parsers ยท writers ยท rules
platform-apiREST API ยท FileSpec management
platform-pipelineOrchestration ยท scheduling
platform-schedulerQuartz-backed job management

New format in minutes

Implement one interface, drop one annotation. Spring discovers your parser or writer automatically โ€” no changes to the registry, pipeline, or any existing code.

NachaFileParser.kt
@Component
class NachaFileParser : FileParser {

  override fun supports(format: FileFormat) =
    format == FileFormat.NACHA

  override fun parse(
    stream: InputStream,
    spec: FileSpec
  ): Flow<ParsedRecord> = flow {
    // your parsing logic here
    emit(ParsedRecord(...))
  }
}

Ready to transform your data pipeline?

Explore the docs, clone the repo, and have a working pipeline in under an hour.