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, designed by a certified AWS Solutions Architect.
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