Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 12 additions & 1 deletion docker-compose.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,15 @@
# docker run --rm -it --volume $PWD:/app --net="host" -w /app ghcr.io/patchlevel/php:8.5
services:
php:
image: ghcr.io/patchlevel/php:8.5
volumes:
- .:/app
working_dir: /app
network_mode: host
tty: true
stdin_open: true
command: sleep infinity

postgres:
image: postgres:alpine
environment:
Expand All @@ -13,4 +24,4 @@ services:
- MYSQL_ALLOW_EMPTY_PASSWORD="yes"
- MYSQL_DATABASE=eventstore
ports:
- 3306:3306
- 3306:3306
21 changes: 21 additions & 0 deletions src/Subscription/Engine/Command/Boot.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<?php

declare(strict_types=1);

namespace Patchlevel\EventSourcing\Subscription\Engine\Command;

final class Boot extends Command
{
/**
* @param list<string>|null $ids
* @param list<string>|null $groups
* @param positive-int|null $limit
*/
public function __construct(
array|null $ids = null,
array|null $groups = null,
public readonly int|null $limit = null,
) {
parent::__construct($ids, $groups);
}
}
18 changes: 18 additions & 0 deletions src/Subscription/Engine/Command/Command.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<?php

declare(strict_types=1);

namespace Patchlevel\EventSourcing\Subscription\Engine\Command;

abstract class Command
{
/**
* @param list<string>|null $ids
* @param list<string>|null $groups
*/
public function __construct(
public readonly array|null $ids = null,
public readonly array|null $groups = null,
) {
}
}
9 changes: 9 additions & 0 deletions src/Subscription/Engine/Command/Pause.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?php

declare(strict_types=1);

namespace Patchlevel\EventSourcing\Subscription\Engine\Command;

final class Pause extends Command
{
}
9 changes: 9 additions & 0 deletions src/Subscription/Engine/Command/Reactivate.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?php

declare(strict_types=1);

namespace Patchlevel\EventSourcing\Subscription\Engine\Command;

final class Reactivate extends Command
{
}
9 changes: 9 additions & 0 deletions src/Subscription/Engine/Command/Refresh.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?php

declare(strict_types=1);

namespace Patchlevel\EventSourcing\Subscription\Engine\Command;

final class Refresh extends Command
{
}
9 changes: 9 additions & 0 deletions src/Subscription/Engine/Command/Remove.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?php

declare(strict_types=1);

namespace Patchlevel\EventSourcing\Subscription\Engine\Command;

final class Remove extends Command
{
}
21 changes: 21 additions & 0 deletions src/Subscription/Engine/Command/Run.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<?php

declare(strict_types=1);

namespace Patchlevel\EventSourcing\Subscription\Engine\Command;

final class Run extends Command
{
/**
* @param list<string>|null $ids
* @param list<string>|null $groups
* @param positive-int|null $limit
*/
public function __construct(
array|null $ids = null,
array|null $groups = null,
public readonly int|null $limit = null,
) {
parent::__construct($ids, $groups);
}
}
20 changes: 20 additions & 0 deletions src/Subscription/Engine/Command/Setup.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<?php

declare(strict_types=1);

namespace Patchlevel\EventSourcing\Subscription\Engine\Command;

final class Setup extends Command
{
/**
* @param list<string>|null $ids
* @param list<string>|null $groups
*/
public function __construct(
array|null $ids = null,
array|null $groups = null,
public readonly bool $skipBooting = false,
) {
parent::__construct($ids, $groups);
}
}
9 changes: 9 additions & 0 deletions src/Subscription/Engine/Command/Teardown.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?php

declare(strict_types=1);

namespace Patchlevel\EventSourcing\Subscription\Engine\Command;

final class Teardown extends Command
{
}
15 changes: 15 additions & 0 deletions src/Subscription/Engine/Event/OnCommand.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?php

declare(strict_types=1);

namespace Patchlevel\EventSourcing\Subscription\Engine\Event;

use Patchlevel\EventSourcing\Subscription\Engine\Command\Command;

final class OnCommand
{
public function __construct(
public readonly Command $command,
) {
}
}
17 changes: 17 additions & 0 deletions src/Subscription/Engine/Event/OnHandleMessage.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?php

declare(strict_types=1);

namespace Patchlevel\EventSourcing\Subscription\Engine\Event;

use Patchlevel\EventSourcing\Message\Message;
use Patchlevel\EventSourcing\Subscription\Subscription;

final class OnHandleMessage
{
public function __construct(
public readonly Subscription $subscription,
public readonly Message $message,
) {
}
}
21 changes: 21 additions & 0 deletions src/Subscription/Engine/Event/OnHandleMessageError.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<?php

declare(strict_types=1);

namespace Patchlevel\EventSourcing\Subscription\Engine\Event;

use Patchlevel\EventSourcing\Message\Message;
use Patchlevel\EventSourcing\Subscription\Subscription;
use Throwable;

final class OnHandleMessageError
{
public function __construct(
public readonly Subscription $subscription,
public readonly Throwable $throwable,
public readonly Message $message,
public readonly int $index,
public bool $transitionToFailed = false,
) {
}
}
19 changes: 19 additions & 0 deletions src/Subscription/Engine/Event/OnHandleMessageSuccess.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<?php

declare(strict_types=1);

namespace Patchlevel\EventSourcing\Subscription\Engine\Event;

use Patchlevel\EventSourcing\Message\Message;
use Patchlevel\EventSourcing\Subscription\Subscription;

final class OnHandleMessageSuccess
{
public function __construct(
public readonly Subscription $subscription,
public readonly Message $message,
public readonly int $index,
public bool $shouldChangePosition = true,
) {
}
}
21 changes: 21 additions & 0 deletions src/Subscription/Engine/Event/OnProcessingFinished.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<?php

declare(strict_types=1);

namespace Patchlevel\EventSourcing\Subscription\Engine\Event;

use Patchlevel\EventSourcing\Subscription\Engine\Command\Command;

final class OnProcessingFinished
{
public const REASON_STREAM_ENDED = 'stream-ended';
public const REASON_LIMIT_REACHED = 'limit-reached';

/** @param self::REASON_* $reason */
public function __construct(
public readonly Command $command,
public readonly string $reason,
public readonly int $processed,
) {
}
}
17 changes: 17 additions & 0 deletions src/Subscription/Engine/Event/OnResult.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?php

declare(strict_types=1);

namespace Patchlevel\EventSourcing\Subscription\Engine\Event;

use Patchlevel\EventSourcing\Subscription\Engine\Command\Command;
use Patchlevel\EventSourcing\Subscription\Engine\Result;

final class OnResult
{
public function __construct(
public readonly Command $command,
public readonly Result $result,
) {
}
}
Loading
Loading