2014-12-15 2 views
0

Я создаю простой API REST для создания некоторых объектов, которые необходимо создавать и отправлять из API. Характер объектов не имеет значения, ни рамки, поддерживающие интерфейс REST (Spray, Play Framework, все остальное). Мой вопрос в том, что было бы хорошим масштабируемым дизайном для этой системы с помощью Akka? Предположим, что сбой службы или ее миграция или что-то еще, что приводит к ее прекращению. Чтобы восстановить описание задач о том, какие объекты должны быть отправлены и когда, akka-persistence - хороший способ пойти сюда? или лучше сохранить такие вещи в традиционной БД?Дизайн простого API REST с сохранением Akka +

Спасибо.

Примечание: я также хотел бы знать, если предположить, что есть какой-то актер, который не Stateful себя, но создает много детей актеров, если это хорошая практика, чтобы использовать Акку-упорства для того, чтобы воспроизвести сообщения, которые вызывают это актер, чтобы снова создать своих детей (дети также не являются государственными).

+1

https://github.com/interagent/http-api-design руководство, извлеченное из работы по Heroku. – yeyo

+0

Какова ваша озабоченность по поводу упорства акка, не являющегося хорошим способом? –

+0

@EricZoerner Нет проблем, просто хочу знать, подходит ли это как хороший прецедент, или в этом случае есть что-то опрятное. – ale64bit

ответ

1

В традиционной БД вы, скорее всего, в конечном итоге моделируете это с помощью меток времени и событий, а с использованием источников событий это уже родная модель.

Akka-persistence был бы естественным подспорьем для этого сценария, поскольку он будет упорствовать в каждом событии о том, какие объекты должны быть созданы и отправлены периодически. Поддержка моментальных снимков также поможет ускорить восстановление, когда количество событий становится очень большим.

В случае сбоев или миграции процесс восстановления справится с этим просто отлично.

Что касается вашей заметки, если актер действительно не имеет гражданства, тогда нет необходимости сохранять события, которые заставляют детей создавать, поскольку они могут быть воссозданы по требованию. Если существование детей необходимо восстановить, то актер не является апатридом. В этом случае, возможно, имеет смысл продолжать эти события.

Смежные вопросы