Строгий менеджер состояний для приложений на javascript
Акита не ограничивает вашу структуру кода. Вместо этого он применяет набор принципов высокого уровня:
setState() (или один из
   методов обновления на его основе).Пока вы следуете этим правилам, вам решать, как структурировать ваш проект. Вот как Акита рекомендует структурировать проект ради поддержания модульности и порядка.
── todos
    └── state
       ├── todos.query.ts
       ├── todos.store.ts
       ├── todos.service.ts
    └── todos.module.ts
    └── todos-page.component.ts
    └── todo
        └── todo.component.ts
        └── todo.component.html
        └── todo.component.scss
        └── todo.component.spec.ts        
Для получения дополнительной информации, посмотрите документацию по CLI.
Если ваши провайдеры широко используют приложения, вы можете использовать
опцию provideIn, чтобы избежать создания новых экземпляров. Например:
@Injectable({ provideIn: 'root' })
@StoreConfig({ name: 'products' })
export class ProductsStore extends EntityStore<State, Product> {
  constructor() {
    super();
  }
}