Ocean is a synergy of three things:
- A fast, powerful Ruby on Rails programming framework and microservice architecture where all the difficult problems already have been solved for you: authentication and authorisation, users, roles, groups, aggregated logging, aggressive caching, flooding protection, string translation, asynchronous job handling, and much more: all you need to create your scalable application. Yet Ocean is a thin layer which never gets in your way. You can just get on with the task at hand.
- Complete development pipelines in the cloud, implementing continuous integration and continuous delivery for each service.
- A modern, extremely scalable, highly available, resilient, highly secure and autoscaling architecture following best practices for the cloud.
Ocean can be set up on AWS in half an hour and is equally suitable for small startups using Ruby on Rails as for large enterprise-level systems. Start small and cheap and grow painlessly in an massively scalable architecture.
Features at a Glance
- Overview • Distributed Architectures • The Pipeline (Dev, CI, QA, Prod) • HTTP Caching • Caching in Ocean • Technologies
API Structure and Conventions
- General API Considerations • Resource Representations • Resource Collections • Authentication and Authorisation • Requests to Services • Responses from Services • Partial Table Access: app and context • Examples
- Auth – Service, Resource, Right, Role, Group, ApiUser, Authentication
- Cloud – Instance, DynamoTable, LoadBalancer
- CMS – Text, Medium
- Jobs – AsyncJob, CronJob, ScheduledJob
- Log – LogExcerpt
- Mail – Mail
- Rollout – App
- How to create your own microservice to manage Notes and their Comments, test it and deploy it.
- Specifics (work in progress)
- Creating a Service • Creating an SQL based Resource • Creating a DynamoDB based Resource • Routing • Models • Views • Controllers • Calling Other Services • Achieving High Scalability using AsyncJobs • Setting up Ocean CronJobs and ScheduledJobs • Working with Groups, Roles, and Rights • Extending the Aggressive Caching • Tutorial