Product: CMS API
Sprint Summary

Daily Objectives

  1. Write up final sprint report
  2. Draw out infrastructure diagram
  3. Figure out automated deployment/installing tools
  4. FIgure out how to use Bookshelf as ORM and what database models
  5. Figure out node_modules(?) required
  6. Figure out requirements and patterns for Rest API and GraphQL (also maybe json only)

Notes

Last day of the sprint! (haha jk -neil from the future but probably not the future you’re reading this from)

What to do:

  1. Create test node + express application

I think I should be thinking of everything in terms of node-modules
Use Express.js to create ‘app’ objects So far express is just handling all the routes and passing them into controllers

So I want to figure out what kind of architecture I need first and then figure out how it’s actually done using Node.js.

MICROSERVICE:

  1. Principles:
    • Single Purpose: each service should focus on single purpose and do it well
    • Loose Coupling: services should know little about each other; communication between services should happen through public interfaces
    • High Cohesion: each service encapsulates all related behaviors and data together; changes for new features should be localized to one service
  2. What do I need to think about it I this project fits a microservice architecture
    • What would the microservices be?
  3. Other Notes:
    • Monolithic persistent storage is potentially harmful, especially when making changes to the data structure while multiple decoupled architectures are dependent on it
    • Make sure to decouple ‘running services’ with ‘building services’
    • What exactly does service management and running services mean? Related topics include Networking, Communication Protocols and Deployment
    • For logging and observability, Medium creates a ‘DataDog’ dashboard for each service
    • https://medium.engineering/microservice-architecture-at-medium-9c33805eb74f very useful and informative smile

chart

SO, I’m going to create this as a microservices architecture! Why?

  1. Good learning experience smile
  2. This should be an ‘open-source’ project, so it’ll be easier for others to come in and make changes

What are things I need to define right now?

  1. Services:
    • CMS hosting
    • Web hosting
  2. To be continued…

Let’s figure a bit more about the backend? For now I’ll be using bookshelf, since creating a custom ORM solution will definitely take some time. I’m still confused on how exactly the backend ties into having a RESTful API or GraphQL service, so I need to look into that.

RESTful API:

GraphQL:

We might want to use a monolithic data structure with multiple services, since this project is hinged around everything accessing the content since it’s literally a CONTENT MANAGEMENT SERVICE omega

LMAO DO I INCLUDE A BUSINESS LOGIC LAYER? YEE LET’S GO FOR IT
What IS business logic first? Business Logic is the logic you’re writing to your program to handle the business rules you’re given. Example of business rules are when you’re transferring money, you need to ensure:

What kind of business logic could I even include here? A plugin for handling client payments? Can I track how much traffic any API’s or Projects are getting? Where would this happen. I’d need another layer between the ORM and the API’s to handle the business logic. And use the Admin panel to view and track the traffic as well as handle the permissions connected to payments for client users. Lmao that sounds a bit wild.

ETL pipeline stands for ‘Extract, Transfer, Load’
RPC stands for ‘Remote procedure call’ (example: gRPC, or Rest+JSON over HTTP)

Objectives Completed

Thoughts/Questions to Come Back To

Plans for Tomorrow