Size: a a a

Архитектура ИТ-решений

2020 June 12

A

Alexey in Архитектура ИТ-решений
сколько остатков таких влезет в память без ущерба производительности?
источник

A

Alexey in Архитектура ИТ-решений
и на каком tps?
источник

A

Alexey in Архитектура ИТ-решений
Phil Delgyado
Ну, для этого update в базу не нужен, достаточно хранить текущий стейт в памяти, а в хранилище - транзакции от предыдущего сохраненного состояния
Ещё момент: у вас так просто update уезжает из базы в память. Но никуда не девается. Чуда не произошло...
источник

PD

Phil Delgyado in Архитектура ИТ-решений
Alexey
сколько остатков таких влезет в память без ущерба производительности?
А зачем все? Только те, что нужны.
источник

PD

Phil Delgyado in Архитектура ИТ-решений
Alexey
Ещё момент: у вас так просто update уезжает из базы в память. Но никуда не девается. Чуда не произошло...
А это зависит от хранилища. Если умеет быстро собирать все операции и делать агрегацию - то update не обязателен. Если умеет быстро искать последний по ключу, то можно делать insert по последнему остатку.
источник

PD

Phil Delgyado in Архитектура ИТ-решений
Вообще, все решения зависят от архитектуры хранилища и все.
источник

PD

Phil Delgyado in Архитектура ИТ-решений
Alexey
и на каком tps?
Да тут как раз почти пофиг. Блокировки на памяти, по сути. Ограничения не там, а в скорости вставки в хранилище. Это все из старых трюков ускорения РСУБД на большой конкуренции.
источник

PD

Phil Delgyado in Архитектура ИТ-решений
А на какой-нибудь ordered key-value db уже другие трюки и можно совсем без update.
источник

PD

Phil Delgyado in Архитектура ИТ-решений
А чудес не бывает. Под самым чистым функциональным кодом лежит вполне себе нефункциональный ассемблер.
источник

I

Ivan in Архитектура ИТ-решений
Напомнило мне Грег Янга:
Event Sourcing is naturally functional. It’s an append only log of facts that have happened in the past. You can say that any projection any state is a left fold over your previous history.
- Greg Young, “A Decade of DDD, CQRS, Event Sourcing” at 16:44
https://youtu.be/LDW0QWie21s?t=1004
источник

PD

Phil Delgyado in Архитектура ИТ-решений
Теоретически - да. Есть поток событий, есть чистые функции на событиях.
Но так как передать в событии функцию увы, не получается, то функции - таки не first-class-citizen.
источник

A

Alexey in Архитектура ИТ-решений
Phil Delgyado
А это зависит от хранилища. Если умеет быстро собирать все операции и делать агрегацию - то update не обязателен. Если умеет быстро искать последний по ключу, то можно делать insert по последнему остатку.
Вариант. Только чистить не забывать, если каждый раз вставку делать-то...
источник

A

Alexey in Архитектура ИТ-решений
И для меня ещё вполне актуальный вопрос - это (почти) одновременное транзакции по одному счёту. И тут уже лучше блокировать счёт на запись, КМК.
источник

A

Andrey in Архитектура ИТ-решений
Alexey Pryanishnikov
На самом деле, любая концепция "everything as a something" это ошибка, связанная с тем, что её адепт считает всех сотрудников компании такими же, как он.

Почему документирование кодом без обычных документов плохая идея? Потому что код нафиг не упёрлось читать всем, кроме программистов.
Почему архитектурный репозиторий для всего плохая идея? Потому что всей остальной компании, кроме архитекторов, нафиг не упёрлось что-то пытаться понять в этих моделях.

Нарушается самый главный постулат - информация должна быть в формате, понятном читателю, а не писателю.
👏
источник

A

Alexey in Архитектура ИТ-решений
Phil Delgyado
А чудес не бывает. Под самым чистым функциональным кодом лежит вполне себе нефункциональный ассемблер.
Ну, как по мне, мир - принципиально не является функциональным (в смысле ФП), а потому моделировать его ТОЛЬКО на ФП - бессмысленно.
источник

F

Foxcool in Архитектура ИТ-решений
Угу, мир себе - модель акторов (:
источник

A

Alexey in Архитектура ИТ-решений
Foxcool
Угу, мир себе - модель акторов (:
Это уже от уровня рассмотрения зависит: что берём за единицу рассмотрения - органеллу, клетку, орган, весь организм или ещё выше лезем.
источник

PD

Phil Delgyado in Архитектура ИТ-решений
Alexey
И для меня ещё вполне актуальный вопрос - это (почти) одновременное транзакции по одному счёту. И тут уже лучше блокировать счёт на запись, КМК.
А блокировать зачем. Можно или блокировать на уровне applayer в памяти. Или, конечно, в хранилище - оптимистически или как-то еще, зависит от того, что умеет хранилище и какие там гарантии.
источник

PD

Phil Delgyado in Архитектура ИТ-решений
Foxcool
Угу, мир себе - модель акторов (:
А акторы - это ООП в изначальном виде )
источник

A

Alexey in Архитектура ИТ-решений
Phil Delgyado
А блокировать зачем. Можно или блокировать на уровне applayer в памяти. Или, конечно, в хранилище - оптимистически или как-то еще, зависит от того, что умеет хранилище и какие там гарантии.
Ну так ведь всё равно блокировать! Пусть и в памяти...
источник