@acuris/eventstore-s3
TypeScript icon, indicating that this package has built-in type declarations

2.2.1 • Public • Published

S3 Event store implementation

Very simplistic system to store events on S3

S3EventSource - Individual objects

This stores events one-per-object

const eventSource = new S3EventSource({
 s3: s3client, // optional
 bucket: "s3-bucket-name",
 prefix: "taxonomy/" // optional
})

S3PackedEventSource - Single ZIP file

This reads (only) events cached in a ZIP file

const eventSource = new S3PackedEventSource({
 s3: s3client, // optional
 bucket: "s3-bucket-name",
 prefix: "taxonomy/events.zip" // optional
})

This event source should be closed to clean up temporary files after use.

S3PackSequenceEventSource - Sequence of ZIP files

This reads events cached in a sequence of ZIP files, and permits writing through a batch interface.

const eventSource = new S3PackSequenceEventSource({
 s3: s3client, // optional
 bucket: "s3-bucket-name",
 prefix: "taxonomy/" // optional
})
await useBatchWriter(eventSource.batchWriter, async writer => {
  await writer.writeEvent({category: "example", id: "12345"}, [{data: true}])
  await writer.flush()
})

Tests

Running the tests requires that the default AWS credentials be able to write to a bucket called "s3-eventstore-testing". This is set up for DevTeam-InfraLogic in inframationdev.

/@acuris/eventstore-s3/

    Package Sidebar

    Install

    npm i @acuris/eventstore-s3

    Weekly Downloads

    2

    Version

    2.2.1

    License

    MIT

    Unpacked Size

    131 kB

    Total Files

    73

    Last publish

    Collaborators

    • marciogoda
    • npmacuris
    • tomyan